Verifica ultimele 2 randuri din fisier

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
steell
Mesaje:190

Verifica ultimele 2 randuri din fisier

Salut
Am un fisier text in care sunt adaugate mai multe <img src> cu ajutorul unui formular, dar si fraze cu ajutorul altui formular.
Ceea ce verau sa fac este ca scriptul de prelucrare a datelor din formular sa verifice mai intai daca ultimele 2 randuri din acest fisier text se termina la fel [adica cu: &nbsp;&nbsp; (dupa fiecare imagine am adaugat niste spatii ) ] si in caz ca se termina la fel sa se execute o instructiune (in cazul meu vreau sa adauge un <br /> la sfarsit ).
Deci codul sa adauge un BR doar din 3 in 3 imagini.
Am mai avut un caz asemanator cu postul "sterge rand ce contine cuvant" insa acesta e mai diferit n-am reusit sa-i dau de cap.

MarPlo Mesaje:4343
Salut
Cu functia file() se poate prelua randurile dintr-un fisier intr-un array.
Cu preg_match() se pot face verificari la sirul dintr-un rand.
Cred ca te poti folosi de acest script:

Cod: Selectaţi tot

// preia randurile din "fisier.txt" in array
$rowsf = file('fisier.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$nrowsf = count($rowsf);             // numar de randuri

// daca ultimele 2 randuri se termina cu: &nbsp;&nbsp; , adauga "<br/>" ca ultim rand
$rgxp = '/(.*)&nbsp;&nbsp;$/i';
if(preg_match($rgxp, $rowsf[$nrowsf-1]) && preg_match($rgxp, $rowsf[$nrowsf-2])) {
  $rowsf[] = '<br/>';
}

// uneste randurile din nou intr-un sir
$strows = implode(PHP_EOL, $rowsf);