Ho un piccolo file.txt che gestisco come fosse un database semplicistico, con una sintassi simile:
Codice PHP:
$database = file("file.txt");
foreach($database as $stringa)
echo $stringa;
Praticamente in questo modo $database è un array i cui elementi sono le righe di file.txt
Scrivendo ad esempio echo $stringa[3], verrà stampata la quarta riga di file.txt
A volte è necessario modificare una di queste righe con un'altra, e fin'ora ho sempre usato str_ireplace con risultati soddisfacenti, con la seguente sintassi:
$id è il numero di riga che mi serve modificare
Codice PHP:
$database = str_ireplace($database[$id], "nuova frase", $database);
// Successivamente aggiorno file.txt
file_put_contents("file.txt", $database);
Il problema è che in questo modo se la stringa $database[$id] è identica a qualsiasi altra stringa posizionata su altre righe, verranno modificate tutte insieme.
Quindi se avessi ad esempio questo file.txt:
codice:
Lorem ipsum dolor sit amet
consectetur adipiscing elit
Nullam vestibulum molestie
Aenean urna purus, imperdiet
Nunc finibus nulla ac tempor
Aenean metus nibh, rhoncus
Nullam vestibulum molestie
rhoncus mi id risus blandit molestie
eget diam vitae, consectetur
...E volessi modificare la stringa $database[2] ossia "Nullam vestibulum molestie" verrebbe modificata anche la stringa $database[6] poiché identiche.
Sapreste indicarmi un modo sempre funzionante che mi permetta di modificare solo la stringa alla posizione che a me interessa, lasciando eventuali doppioni invariati?