Autor Zpráva
Carduus
Profil *
Ahoj,
napsal jsem si funkci pro kontrolu událostí v mé txt souboru, ale už při načítání souboru nefunguje.

SetLocale(LC_ALL, "Czech");
$mesic = StrFTime("%m", Time()); // uložení měsíce do proměnné
$den = StrFTime("%d", Time()); // uložení dnu do proměnné
$soubor1=fopen("testy.txt", "r+");  // otevření obou souborů
$soubor2=fopen("ukoly.txt", "r+");

$text1 = fread($soubor1, filesize($soubor1)); // načtení obsahu souborů do proměnných

// UŽ TADY MÁM PROMĚNNOU $text1 PRÁZDNOU PŘESTOŽE BY V NÍM MĚL BÝT ULOŽENÝ CELÝ OBSAH TXT SOUBORU

$text2 = fread($soubor2, filesize($soubor2));
$pole1 = explode("<li style='list-style-image:url(images/odrazka.png)'>", $text1); // rozdělení textu do polí (každá událost začíná <li style='.......)
$pole2 = explode("<li style='list-style-image:url(images/odrazka.png)'>", $text2);

for ($x = 0; $x < count($pole1); $x++) {
	if (substr($pole1[$x],3,2) <= $mesic && substr($pole1[$x],0,2) <  $den) { // kontrola, jestli nějaká událost není starší než dnešek (každá událost je ve tvaru <li style=.......>DD.MM)
			array_splice($pole1, $x, 1); // pokud je v poli stará událost, smaž ji
		}
}

for ($y = 0; $y < count($pole2); $y++) {
	if (substr($pole2[$y],3,2) <= $mesic && substr($pole2[$y],0,2) <  $den) {
		array_splice($pole2, $y, 1);
	}
}

fclose($soubor1);
fclose($soubor2);

unlink("testy.txt"); // smazání starých txt souborů
unlink("ukoly.txt");

$testy_soubor=fopen("testy.txt", "w"); //vytvoření nových a zapsání do nich obsah polí
$ukoly_soubor=fopen("ukoly.txt", "w");


for ($z = 0; $z < count($pole1); $z++) {
	fwrite($testy_soubor, "<li style='list-style-image:url(images/odrazka.png)'>". $pole1[$z]);
}

for ($u = 0; $u < count($pole2); $u++) {
	fwrite($ukoly_soubor, "<li style='list-style-image:url(images/odrazka.png)'>". $pole2[$u]);
}

fclose($testy_soubor);
fclose($ukoly_soubor);


Je možné, že by nastala chyba při načítání txt souboru hned na začátku? Stránka mi žádný error nehlásí.
Tori
Profil
A soubor "ukoly.txt" existuje? Pro případ, že ne, by bylo lepší používat
fopen('ukoly.txt', 'c+b');
Anebo - jelikož stejně načítáte celý obsah souborů a pak celý přepisujete - použít file_get_contents a file_put_contents (to druhé nejspíš v kombinaci s implode).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0