Visualizzazione risultati 1 fino 10 di 10

Discussione: Ricavare stringa da altro file

  1. #1
    Guest

    Predefinito Ricavare stringa da altro file

    Salve, vorrei sapere come si risolve tale problema:

    ho in un file

    fabio.php
    Codice PHP:
    $testo="ciao";
    e voglio fare in modo che nel file marco.php ci sia:
    $testo=la stringa $testo contenuta in fabio.php, ossia ciao

    Come potrei fare?
    Ho pensato alle librerie CURL per ricavare i codici di fabio.php e poi con preg_match di ricavare ciò che mi serve.
    Ma c'è un metodo più veloce ed elegante?
    Se non c'è come lo devo impostare il preg_match, dato che non sono riuscito comunque a utilizzarlo?

    Grazie mille.
    Ultima modifica di animeNOD : 20-01-2013 alle ore 17.50.32

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Ci sono include e require, ma magari risolvi anche con un file di configurazione condiviso fra i due script?

  3. #3
    Guest

    Predefinito

    Mi ero dimenticato di precisare che il file fabio.php non ha solo quella stringa, ma ha una serie di echo... quindi le funzioni include e require non risolvono il mio problema. Altre soluzioni? Grazie comunque per la risposta

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

    Predefinito

    Una soluzione non belissima, è utilizzare eval(): quella funzione esegue il codice che gli passi... Nel tuo caso, dovrebbe far l'assegnamento...

    Ciao!
    Ultima modifica di alemoppo : 20-01-2013 alle ore 19.47.24 Motivo: exec -> eval

  5. #5
    Guest

    Predefinito

    Hai scritto exec() ma il collegamento mi rimanda alla funzione eval().
    In ogni caso potresti farmi un esempio adatto al mio problema? Grazie

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

    Predefinito

    Ehm, ho scritto male... Si tratta di eval().

    L'esempio sarebbe:

    Codice PHP:
    $righe = file('fabio.php',FILE_IGNORE_NEW_LINES);
    eval(
    $righe[10]); //se ad esempio quell'assegnamento è nella 11° riga.
    //da qui in poi dovresti avere la variabile $testo che vale 'ciao'.
    La eval() non l'ho mai utilizzata perché è troppo pericolosa: se lo script ha qualche bug, un malintenzionato potrebbe usarla per eseguire codice suo! Quindi fai dei controlli severi su cosa eseguire (ergo non eseguire codici presi da $_POST, $_GET, $_COOKIE, file esterni al tuo sito o comunque file che possono modificar gli utenti...).

    Ciao!
    Ultima modifica di alemoppo : 20-01-2013 alle ore 19.50.02

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Metti le variabili che vanno condivise in un file di configurazione ed includilo o leggilo da entrambi gli script. Soluzioni con exec o quant'altro sono tapulli estremi, che smetteranno di funzionare senza avviso trascinandoti in un inferno per trovare l'errore. Fiamme e zolfo ovunque, non senti già l'odore?

  8. #8
    Guest

    Predefinito

    Ho capito.. purtroppo però non mi funziona.
    Inoltre in seguito al tuo avvertimento:
    La eval() non l'ho mai utilizzata perché è troppo pericolosa: se lo script ha qualche bug, un malintenzionato potrebbe usarla per eseguire codice suo! Quindi fai dei controlli severi su cosa eseguire (ergo non eseguire codici presi da $_POST, $_GET, $_COOKIE, file esterni al tuo sito o comunque file che possono modificar gli utenti...).
    preferirei desistere.
    Comunque preferisco usare il preg_match, riformulo così la domanda:

    con le librerie CURL ricavo il contenuto di fabio.php chiamato $str.
    In tale $str voglio estrapolare con il preg_match la scritta in grassetto:

    $testo="ciao";

    ossia quella parte compresa tra $testo=" e ";.
    Grazie.

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

    Predefinito

    Con le librerie curl potrai ottenere l'output html, e non il sorgente php!
    Un esempio: se fai una richiesta curl ad un qualsiasi sito (ad esempio, wikipedia, per dirne uno), non ottieni il sorgente PHP, ma l'output!

    Dovresti usare file_get_contents() o file() per ottenere i file nel tuo spazio!

    Comunque, la soluzione migliore è ovviamente quella suggerita da dreadnaut.

    Ciao!

  10. #10
    Guest

    Predefinito

    ok... farò come ha detto dreadnaut: 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
  •