To zadziała:
<?php
$a="cenzor.txt";
$z='napis a potem brzydkie1 <br>';
for ($i=0; $i<sizeof($plik); $i++)
?>
Zauważ, że po wyświetleniu var_dump tablicy z pliku pierwszy wiersz ma 2 nadprogramowe znaki.
EDIT:
Poprawka, wiem gdzie jest błąd. Otóż tak:
1. pierwszy obrót pętli, do $f przypisujemy 'napis a potem brzydkie1 <br>', ciąg zostaje zamieniony na 'napis a potem #CENZURA <br>'
2. po czym następuje kolejny obrót pętli, gdzie do $f znów przypisany jest ciąg 'napis a potem brzydkie1 <br>', więc ocenzurowany tekst znów jest w pierwotnej wersji.
3. jako wynik otrzymujemy więc 'napis a potem brzydkie1 <br>'
tak więc cenzuruje w pętli po jednym wyrazie, po czym znów mamy ciąg pierwotny i zostanie ocenzurowany tylko ten wyraz, który występuje pod ostatnim indeksem w pętli.
Poprawny kod:
<?php
$a="cenzor.txt";
$z='napis a potem brzydkie1 <br>';
for ($i=0; $i<sizeof($plik); $i++)
?>