Visualizzazione risultati 1 fino 5 di 5

Discussione: Variabuile php salvata nel database

  1. #1
    davideferri non è connesso Neofita
    Data registrazione
    27-12-2019
    Messaggi
    6

    Predefinito Variabuile php salvata nel database

    Ciao a tutti,
    se salvo un testo contente una variabile php dentro al database, c'è un modo per compilare quella variabile una volta estratta dal database?

    Per esempio salvo nel database:
    Codice:
    Ciao $nome
    La estraggo con:
    Codice PHP:
    $result=mysqli_query($con, "SELECT * FROM saluti");
    $row=mysqli_fetch_array($result);
    $saluti=$row['saluto'];
    ma la variabile $nome contenuta in $saluti è una stringa, quindi non viene compilata

    Grazie

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Tramite eval.
    Però, nella maggior parte dei casi, se arrivi ad avere bisogno di un meccanismo del genere è perché c'è qualcosa che non va a monte.

    I suggerimenti che do più spesso:


  3. #3
    davideferri non è connesso Neofita
    Data registrazione
    27-12-2019
    Messaggi
    6

    Predefinito

    Ho sbagliato a eliminare...
    Voglio creare una mewsletter in php e appunto credevo di poter salvare i testi dentro al database e poterli compilare una volta estratti... ma se dici che c'è un problema a monte suppongo che non si possa usare questo metodo.
    Quindi come dovrei fare?
    Grazie

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Per potere si può, ma non è il metodo migliore. Il problema sono le variabili libere, se il tuo modello contiene Ciao $nome sei vincolato a rendere disponibile una variabile $nome nel contesto in cui verrà interpretato (non compilato!). Questo rende il codice difficile da mantenere o estendere, ma comunque può funzionare.

    L'alternativa sono i template engine, per esempio Twig. Funzionano più o meno tutti allo stesso modo: tieni un modello in formato testuale da qualche parte (in un file o database) usando una sintassi particolare, per esempio Ciao {nome}, il modello viene letto dal codice PHP e il suo rendering viene reso disponibile come una funzione o un metodo di una classe, al quale va passato come parametro il contesto nel quale valutare il template, ovvero le variabili, che in questo modo non sono più libere.
    Complessivamente viene un flusso di questo tipo:
    Codice:
    template_source = "Ciao {nome}"
    template = TemplateEngine->load(template_source)
    output = template.render(['nome' => 'Davide'])
    print(output)  // Ciao Davide
    Se cerchi una soluzione più rapida o leggera e le tue necessità sono limitate alla sostituzione di stringe puoi anche fartelo a mano:
    Codice PHP:
    $template_source = "Ciao {nome}";
    $output = str_replace(['{nome}'], ['Davide'], $template_source);
    echo
    $output;
    Meno efficiente ed elegante, ma adatto a contesti semplici.

    I suggerimenti che do più spesso:


  5. #5
    davideferri non è connesso Neofita
    Data registrazione
    27-12-2019
    Messaggi
    6

    Predefinito

    Proverò twig. Grazie mille

Regole di scrittura

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