• User Newbie

    File_get_contents - Sostituire il valore di una variabile al testo estratto.

    Salve a tutti!,
    io vi scrivo per la stessa funzione, ma non vorrei andare OT.

    Io ho bisogno della funzione file_get_contents() per inserire un file php in una variabile, che diventerà il testo di una mail che invierò nel file da cui lo richiamo.

    Esempio

    file1.php
    Questo è il testo della mia mail e ho bisogno qui della variabile $id

    file2.php
    <?php
    $id=15;//Esempio
    $testo=file_get_contents(file1.php);
    echo $testo;
    ?>

    Quando eseguo file2.php mi visualizza

    Questo è il testo della mia mail e ho bisogno qui della variabile $id

    invece vorrei visualizzare

    Questo è il testo della mia mail e ho bisogno qui della variabile 15

    Come posso fare?

    Grazie infinite.. è 3 giorni che ci sbatto la testa, ma sembra che non sia prevista sta cosa e che debba scriverlo all'interno di una variabile.


  • Consiglio Direttivo

    Ciao giannizongaro e benvento nel forum GT. 🙂

    Hai provato così?
    [php]$testo=str_replace("$id",$id,$testo);[/php]Assegnando ad una variabile il testo ottenuto dalla funzione questo viene trattato come testo in tutto e per tutto, per capirci è come se scrivessi:
    $testo='Questo è il testo della mia mail e ho bisogno qui della variabile $id';
    Che come saprai è ben diverso da scrivere:
    $testo=
    "Questo è il testo della mia mail e ho bisogno qui della variabile $id"
    ;

    Stante così le cose ti basterà trattare questo contenuto come testo, facendo quindi un replace del testo $id, con il valore della variabile $id. 😉

    Facci sapere se risolvi. 😉


  • User Newbie

    No, ho risolto usando la seguente funzione:

    function GetRequire($sFilename) {
    ob_start();
    require($sFilename);
    $sResult = ob_get_contents();
    ob_end_clean();
    return $sResult;
    return ob_get_clean();
    }

    perchè se all'interno della pagina che voglio inserire nella variabile ho una stringa del tipo <? echo $id ?> non mi viene interpretata.

    Con questa funzione invece la pagina viene prima aperta e dopo messa in una variabile dopo essere stata interpretata dal server!

    Se sapete altre soluzioni fatemi sapere.

    Grazie!!!


  • ModSenior

    Ciao gannizongaro,

    invece di usare tutta quella funzione che fa anche cose extra, puoi fare direttamente:
    [php]
    <?php
    $id=15;//Esempio
    include('file1.php');
    ?>
    [/php]

    Che è la cosa maggiormente utilizzata in php.