Visualizzazione risultati 1 fino 4 di 4

Discussione: scrivo file in php, modifico il testo, eseguo un check ma non ha modificato nulla

  1. #1
    filmlandia non è connesso Utente AlterBlog
    Data registrazione
    07-05-2017
    Messaggi
    8

    Predefinito scrivo file in php, modifico il testo, eseguo un check ma non ha modificato nulla

    Salve, vi espongo il mio problema. Io eseguo questo codice:

    Codice PHP:
    $prendo_link_per_replace = "pagine/pagina.php"; //pagina in cui devo sostituire vecchio con nuovo
    $vecchio = "http://miosito.altervista.org"; //devo trovare questa stringa...
    $nuovo = "http://altervista.org \n"; //...e sostituirla con questo qui

    $str_1 = file_get_contents($prendo_link_per_replace); //prendo il contenuto della pagina
    $fp_7 = fopen($prendo_link_per_replace, 'w'); //apro il file in W cosi' cancello il precedente contenuto
    $str_1 = str_replace($vecchio, $nuovo, $str_1); //trovo vecchio e lo sostituisco con nuovo
    fwrite($fp_7, $str_1, strlen($str_1)); //scrivo nel file il testo modificato
    fclose($fp_7); //chiudo il file
    echo "UPDATE pagina con str_1: ".$str_1."\n"; //output nuovo contenuto
    In "$prendo_link_per_replace" c'e' il link della pagine a cui devo accedere.
    Questo codice sembra funzionare, il replace me lo esegue e se dopo aver eseguito questo codice apro il file di testo su cui ho scritto vedo perfettamente che e' stato modificato.
    Purtroppo, se sotto a quel codice inserisco questo:

    Codice PHP:
    $str = file_get_contents($prendo_link_per_replace);
    ad $str riassegna il vecchio contenuto della pagina (quello non modificato tramite le azioni nelle righe precedenti). Com'e' possibile? Se io apro il file, modifico e chiudo, perche' non mi salva le modifiche? Le modifiche me le salva solo se chiudo tutto il codice e lo riapro.
    C'e' una funzione che mi permette di fare il ricaricamento del file?
    Grazie della risposta
    Ultima modifica di filmlandia : 20-05-2018 alle ore 15.44.49

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,760

    Predefinito

    Teoricamente, dopo la fclose() dovrebbe aggiornarlo. Prova al più con la fflush() prima della fclose() così da forzargli la scrittura.

    Comunque visto che usi la file_get_contents() come mai per scrivere non usi la file_put_contents()? (anche se dovrebbe comportarsi come fopen+fwrite+fclose, ma è di più facile lettura).

    Ciao!
    Ultima modifica di alemoppo : 20-05-2018 alle ore 18.24.08

  3. #3
    Data registrazione
    19-10-2013
    Messaggi
    14

    Predefinito

    Ho provato con fflush() ma non porta nessun risultato, rimane tutto immutato come prima. Altri consigli?

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,760

    Predefinito

    Purtroppo non riesco a riprodurre il problema. Prima di lanciare ho creato text.txt che contiene la stringa "testo vecchio".
    Dopo aver eseguito:
    Codice PHP:
    <?php
    $prendo_link_per_replace
    = "text.txt"; //pagina in cui devo sostituire vecchio con nuovo
    $vecchio = "vecchio"; //devo trovare questa stringa...
    $nuovo = "nuovo"; //...e sostituirla con questo qui

    $str_1 = file_get_contents($prendo_link_per_replace); //prendo il contenuto della pagina
    $fp_7 = fopen($prendo_link_per_replace, 'w'); //apro il file in W cosi' cancello il precedente contenuto
    $str_1 = str_replace($vecchio, $nuovo, $str_1); //trovo vecchio e lo sostituisco con nuovo
    fwrite($fp_7, $str_1, strlen($str_1)); //scrivo nel file il testo modificato
    fclose($fp_7); //chiudo il file
    echo "UPDATE pagina con str_1: ".$str_1."\n"; //output nuovo contenuto

    echo file_get_contents($prendo_link_per_replace);
    ?>
    Visualizzo:
    UPDATE pagina con str_1: testo nuovo
    testo nuovo
    Non ho capito bene il problema?
    Puoi provare solamente questo codice nel tuo spazio? (avendo cura prima di creare il file text.txt con contenuto "testo vecchio".

    Ciao!
    Ultima modifica di alemoppo : 23-05-2018 alle ore 15.46.39

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •