Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260

    problema di sosituzione del contenuto di una riga in un txt

    ciao ragazzi,
    Secondo voi esiste un modo per sostitire il contenuto di una riga con un'altro contenuto in un file txt senza intaccare le altre righe?
    Esempio

    codice:
    oggi è festa
    oggi è festa perchè è il primo maggio
    oggi è festa perchè è il primo maggio, la festa dei lavoratori

    se io volessi sostiture la prima riga "oggi è festa" con "oggi non si lavora" senza toccare la seconda e la terza riga come potrei fare?

    Io ho provato a fare così:

    Codice PHP:
    <?php
    $filename 
    "file.txt";
    $handle fopen($filename"r");
    $testo fread($handlefilesize($filename));
    fclose($handle);

    $testo str_replace("oggi è festa""oggi non si lavora"$testo);

    $filename 'file.txt';
    $contenuto "$testo";
    $handle=fopen($filename,"w"); //apre il file 
    fwrite($handle$contenuto);
    fclose($handle);
    ?>
    Il problema è che il risultato è il seguente:

    codice:
    oggi non si lavora
    oggi non si lavora perchè è il primo maggio
    oggi non si lavora perchè è il primo maggio, la festa dei lavoratori
    mentre invece io volevo:

    codice:
    oggi non si lavora
    oggi è festa perchè è il primo maggio
    oggi è festa perchè è il primo maggio, la festa dei lavoratori
    Si può fare qualcosa? Oppure non ci sono soluzioni?

    Grazie e buona festa a tutti i lavoratori...

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260
    Almeno sono stato chiaro? :master:

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Prova così premesso che sono una frana con le regex.

    if (ereg("oggi è festa$",$testo))
    $testo = str_replace("oggi è festa", "oggi non si lavora", $testo);

  4. #4
    la funzione file() ti restituisce un array dove ogni elemento è una riga del file letto, in questo modo puoi operare solo sulle righe che ti interessano in maniera diretta.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260
    Ciao
    Posso chiederti perchè hai messo $ alla fine di oggi è festa?
    if (ereg("oggi è festa$",$testo))
    Cmq così come è stata impostata non funziona, rimane tutto invariato...

    Se provo a togliere la $ finale il risultato e come quello precedente:
    codice:
    oggi non si lavora
    oggi non si lavora perchè è il primo maggio
    oggi non si lavora perchè è il primo maggio, la festa dei lavoratori
    :master:
    Ciao e grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260
    la funzione file() ti restituisce un array dove ogni elemento è una riga del file letto, in questo modo puoi operare solo sulle righe che ti interessano in maniera diretta.
    Esempio :master:
    Cioè come faccio a fare quello che voglio io con quella funzione?

    Grazie

  7. #7
    Originariamente inviato da trust
    Esempio :master:
    Cioè come faccio a fare quello che voglio io con quella funzione?

    Grazie
    $filename = "file.txt";
    $righe = file($filename);

    $righe[0] = "oggi non si lavora\n";

    $contenuto = implode('', $righe);
    $handle=fopen($filename,"w"); //apre il file
    fwrite($handle, $contenuto);
    fclose($handle);

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.