Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    323

    sostituzione stringa all'interno del file

    Salve a tutti, io ho una domanda da fare. Io, tramite uno script copio un file index.php in un'altra cartella, una volta copiato vorrei sostituire la seguente riga:

    $username="";

    con

    $username="nome_utente";

    ecco cio' che ho scritto:


    if(@$fh = fopen("user/index.php", 'r+')){
    @$str = fread ($fh, filesize("user/index.php"));
    $str = str_replace("$username="";", "$username="user";", $str);
    @fclose($fh);
    } else {
    die ("Error opening file");
    }

    dove sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    parli di "sbaglio" ma non specifichi dove sta il problema... probabilmente lo script si blocca con un errore? in realtà potrebbe essere più adatto usare le espressioni regolari, ma se è sufficiente una sostituzione semplice allora prova a correggere lo script inviato, che contiene doppi apici in maniera scorretta...

    intanto cambia:
    Codice PHP:
    $str str_replace("$username="";""$username="user";"$str); 
    con:
    Codice PHP:
    $str str_replace('$username="";''$username="user";'$str); 
    inoltre manca completamente la riscrittura del contenuto (lo leggi, lo modifichi, ma non lo risalvi) da aggiungersi in coda.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    323
    grazie per la risposta, ma come lo salvo, dato che ho r+ non basta?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    "r+" è la modalità di accesso, ma devi aggiungere in coda


    fwrite ($fh, $str); SUBITO PRIMA di fclose(...)


    tuttavia suggerisco un'altra strada: nel tuo caso forse è meglio usare solo "r" e aggiungere SUBITO DOPO fclose(...)

    @$fh = fopen("user/index.php", 'w');
    @fwrite($fh, $str);
    @fclose($fh);

    cioè prima leggi il file e lo modifichi, poi lo "chiudi", quindi lo riapri per scriverci dentro la versione modificata


    PROVA MAGARI ENTRAMBE LE COSE: se la prima ti va bene fermati lì. FAI COMUNQUE UNA COPIA DI SICUREZZA DEL FILE PRIMA DELLE PROVE.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    323
    grazie mille funziona, posto il codice (cosi' chi come me ha bisogno, trova una possibile soluzione):


    if(@$fh = fopen("user/index.php", 'r')){
    @$str = fread ($fh, filesize("user/index.php"));
    $str = str_replace('$username="";', '$username="user";', $str);
    @fclose($fh);

    @$fh = fopen("user/index.php", 'w');
    @fwrite($fh, $str);
    @fclose($fh);

    Grazie ancora

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Originariamente inviato da goxpix
    Grazie ancora
    Prego!

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.