![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 22.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czesc.
Mam plik ktory bedzie szedl do bazy danych, ale najpierw musze w nim pozamieniac zespoly znakow '/|' ,'\|' etc. Poniewaz separatorem pol w pliku jest '|'. Nie do konca czaje jak zrobic zeby rozumial ze ten bufor to string. Bufor wolalbym miec bo plik ma 67 w gz, a po rozpakowaniu 80mb. Walnalem cos takiego CODE function unpackarch ($src,$dst) { $in_file = gzopen($src,"rb"); $out_file = fopen ($dst,"wb"); while (!gzeof ($in_file)) { $buffer = gzread ($in_file,4096); $bugz=array("\|","/|"); $buffer= implode("\n",$buffer); $buffer = str_replace($bugz,"|",$buffer); fwrite($out_file,$buffer,4096); } gzclose($in_file); fclose($out_file); } unpack pliku dziala , ale str_replace nie. Ten post edytował calebos 11.04.2008, 11:27:32 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
Umieść kod w odpowiednichz znacznikach BBcode.
Zamiast gzread() spróbuj zastosować gzgets() ... i wyrzuć linijkę z implode() ... -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 22.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki za odpowiedz.
Poprawilem kod i teraz dziala. Mam problem z '/|' kombinuje na wszystkie sposoby i usuwa mi jedynie '\|' z tego pliku. Zmienialem double quote na single itp odracalem kolejnosc i nadal sa /|. Thx za pomoc. PS. Jeszcze male pytanko dt buforu tzn jak wczyta 'fragment' to jest mozliwe zeby rozdzielil w momencie kiedy pojawia sie '/' a w nastepnym fragmencie pojawia sie '|' i wtedy str_replace nie zadziala bo nie ma occurency of '/|' ? Nie jestem pewny na jakiej zasadzie skrypt czyta ten bufor czy z binarki czy ze stringa ? Moze to jest idiotoodporne ale chcialbym wiedziec jak to dziala ![]() Ten post edytował calebos 11.04.2008, 12:15:14 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
Cytat PS. Jeszcze male pytanko dt buforu tzn jak wczyta 'fragment' to jest mozliwe zeby rozdzielil w momencie kiedy pojawia sie '/' a w nastepnym fragmencie pojawia sie '|' i wtedy str_replace nie zadziala bo nie ma occurency of '/|' ? Bardzo trafne spostrzeżenie... Sprawdzaj ostani znak w buforze, i jeżeli jest to '/' doczytuj do bufora jeszcze jeden znak... powinno pomóc ![]() -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 22.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jakis hint dlaczego nie wychwytuje mi /| ?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
chyba powinno być tak:
-------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 22.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hey
Niestety nadal mi nie lapie /| . Nawet jak wywale bufor to i tak to nie dziala. Usuwa \| poprawnie. CODE function unpackarch ($src,$dst) { print ("Attempting to unpack and fix '$src' file......"); $in_file = gzopen($src,"r"); $out_file = fopen ($dst,"wb"); while (!gzeof ($in_file)) { $buffer = gzgets ($in_file,4096); $last= $buffer[strlen($buffer)-1]; print ("$last"); $bugz=array('/|','\|'); $fixes=array('|','|'); $buffer = str_replace($bugz,$fixes,$buffer); fwrite($out_file,$buffer,4096); } gzclose($in_file); fclose($out_file); } |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
a możesz gdzieś wystawić przykładowy (kilka wpisów) plik źródłowy i wynikowy...? coś mi się zdaje, że to co chcesz usunąć nie jest kombinacją znaków '/|' tylko tak wygląda w pliku wynikowym...
-------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 22.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kurde niestety nie wzialem sobie zrzutu z tyrki wiec nie zapodam.
Myslisz zeby podejrzec jakims hexem czy czegos tam nie ma ? Byloby to dziwne ale ludzie dziwne rzeczy wpisuja do custom fieldow ![]() W hex jest 2F 7C wiec nie ma tam nic pomiedzy. Jak mam wstawic ten txt .. ma 70mb. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
nie wstawić (na forum) tylko wystawić (gdzieś w sieci do pobrania) i nie cały plik (70 MB) tylko jego kawałek (np. 10-100 kB). Wtedy będę mógł dokładnie sprawdzić co jest grane, bo u mnie na przykładowych danych "wklepanych" do skryptu ten str_replace() działa jak trzeba...
i jeszcze pytanie pomocnicze.. czy plik, który obrabiasz (z danymi) i plik skryptu PHP (z str_replace) mają tą samą strone kodową ![]() -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 10:20 |