![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 0 Dołączył: 30.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Próbuję napisać skrypt do usuwania z pliku wielu linii na raz. Przerobiłem skrypt do usuwania jednej linii, ale strasznie obciąża serwer i czasami wyskakuje błąd o wykorzystaniu limitu czasu. Czy da się to wykonać szybciej, tak aby nie wyskakiwał błąd? Oto mój skrypt (usuwa 269 linii od góry licząc): Cytat <?PHP
$start = 0; $koniec = 269; do { $toDelete = 0; $lines = file('strona.html'); unset($lines[$toDelete]); file_put_contents('strona.html', $lines); $start ++; } while ($start != $koniec); ?> |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
A błąd polegał na tym że za każdą iteracją pętli wczytywałeś plik do tablicy na której potem robiłeś operację i z powrotem zapisywałeś plik... i tak 269 razy... operacje odczytu i zapisu do pliku są jednymi z najwolniejszych w PHP... w zasadzie wystarczyłoby przesunąć wczytanie pliku do tablicy przed pętlę... w samej pętli operować na tej jednej tablicy i zapisać już na końcu, po skończeniu pętli... Ten post edytował nowotny 29.07.2008, 20:20:17 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 01:06 |