Visualizzazione risultati 1 fino 11 di 11

Discussione: [PHP] Cattuarare l'output di una elaborazione [per esperti]

  1. #1
    solitarybeach non è connesso Neofita
    Data registrazione
    16-11-2004
    Messaggi
    8

    Exclamation [PHP] Cattuarare l'output di una elaborazione [per esperti]

    Salve a tutto il Forum,
    ho uno script (mio_script.php) che legge dei file di testo, li elabora e poi
    costruisce una pagina html con i risultati formattati.

    Mi servirebbe una funzione che riesca a catturarne i risultati.
    Mi spego meglio, esiste qualche funzione che possa inserire il codice
    generato da "mio_script.php" in una variabile. Cioè...

    $Variabile=Qualche_Funzione("mio_script.php");

    In $Variabile mi servirebbe il codice risultante da mio_script.php no il suo
    contenuto.

    Spero di essere stato chiaro.

    Grazie a chi mi possa aiutare, sono ad un punto morto.

  2. #2
    Guest

    Predefinito

    Bhe, dovresti lanciare la pagina mio_script.php anzichè un'altra!
    All'interno di questa elabori i txt come ti serve e restituisci ciò che vuoi.

    Forse non si è capito bene ciò che chiedi, prova a spegarti meglio.


    Ciaooo!!

  3. #3
    solitarybeach non è connesso Neofita
    Data registrazione
    16-11-2004
    Messaggi
    8

    Predefinito

    Grazie mille per l'intervento.

    Bhe, dovresti lanciare la pagina mio_script.php anzichè un'altra!
    No per il mio scopo, sto costruendo un motore di ricerca interno.

    Almeno che si possa fare direttamenta da un'altro script e catturando solo i risultati.

    Forse non si è capito bene ciò che chiedi, prova a spegarti meglio.
    Praticamente vorrei leggere (come fanno gli spider quando incontrano una pagina dinamica) i risultati dell'esecuzione, cioè quello che viene mandato al browser dell'utente e non il codice.

    Ciaooo!!

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito Don't try this at home

    Forse te la cavi con questo codice... però si tratta di funzioni che non ho mai usato (delle quali però c'è una buona documentazione) quindi non posso garantirti il funzionamento:
    Codice PHP:
    // copia il contenuto di un file in una stringa
    $filename = "script.php";
    $handle = fopen ($filename, "r");
    $contents = fread ($handle, filesize ($filename));
    fclose ($handle);

    // esegue il contenuto del file
    eval ($contents);
    Stammi bene...

    UPDATE: prova a controllare se questo codice lo fa meglio: http://it.php.net/manual/it/function.eval.php#70409
    Ultima modifica di dementialsite : 15-12-2006 alle ore 13.40.58
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    solitarybeach non è connesso Neofita
    Data registrazione
    16-11-2004
    Messaggi
    8

    Exclamation

    Forse te la cavi con questo codice...
    Grazie dell'indicazione.

    Comunque di solito non miro solitamente a cavarmela ma ad ottenere un buon risultato.

    (dopo mezza giornata di studio)
    Il mio problema originale si risolve semplicemente utilizzando le funzioni CURL (Client URL Library) settando appropriati parametri.
    Sfortunatamente su AlterVista non sono abilitate.

    Senza andare lontano ci sarebbe la semplice file_get_contents con parametro uguale all'url del file e non al semplice path.
    Sfortunatamente su AlterVista l'URL file-access è disabilitato anche se richiedo un file interno al mio spazio.

    Gli amministratori avranno le loro ragioni, ma che peccato tutte queste limitazioni su di un linguaggio così potente!!!
    Come guidare una Ferrari e limitarsi di stare in prima.


    Grazie a tutti!

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Puoi usare le funzioni di output buffering (ob_start e altre che iniziano con "ob_") che salvano un pezzo di una pagina eseguita dentro a una variabile.
    Codice PHP:
    ob_start();
    include(
    "pagina.php"); // Può essere anche una pagina HTML.
    $codice=ob_get_contents();
    ob_end_clean();
    Ultima modifica di funcool : 17-12-2006 alle ore 17.07.15 Motivo: Ho corretto il BBCode.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  7. #7
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Ti posso dire una cosa? Qui su AlterVista ho usato né più né meno (beh, qualcosa per rendere presentabile la pagina ce l'ho aggiunto...) che il codice HTML riportato nel post che ti ho linkato.
    Codice PHP:
    <?php
    function phpWrapper($content) {
    ob_start();
    $content = str_replace('<'.'?php','<'.'?',$content);
    eval(
    '?'.'>'.trim($content).'<'.'?');
    $content = ob_get_contents();
    ob_end_clean();
    return
    $content;
    }
    ?>
    <HTML>
    <HEAD>
    <TITLE>CaptureOutput test</TITLE>
    </HEAD>
    <BODY>
    <P>Il seguente è l'output generato dal file <A HREF="test.php">test.php</A>:</P>
    <DIV STYLE="border:solid 1px #000000;padding:10px;font-family:monospace">
    <?php
    $content
    = file_get_contents('test.php');
    $content = phpWrapper($content);
    echo (
    $content);
    ?>
    </DIV>
    <P>Questo, invece, il codice HTML ottenuto:</P>
    <DIV STYLE="border:solid 1px #000000;padding:10px;font-family:monospace">
    <?php
    $content
    = str_replace ('&', '&amp;', $content);
    $content = str_replace ('<', '&lt;', $content);
    $content = str_replace ('>', '&gt;', $content);
    $content = str_replace ('"', '&quot;', $content);
    echo (
    $content);
    ?>
    </DIV>
    </BODY>
    </HTML>
    Il risultato eccolo qui: http://dementialsite.altervista.org/...captureoutput/

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  8. #8
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Mi sembra di capire che solitarybeach voglia soltanto accedere tramite PHP a pagine al di fuori del suo spazio altervista...
    cosa che appunto non è possibile fare in nessun modo, neanche con l'outputbuffering direi...
    La limitazione, tra le altre cose, serve proprio a non creare script di crawling/bot/spiders.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  9. #9
    solitarybeach non è connesso Neofita
    Data registrazione
    16-11-2004
    Messaggi
    8

    Predefinito

    Mi sembra di capire che solitarybeach voglia soltanto accedere tramite PHP a pagine al di fuori del suo spazio altervista...
    Mi spiace ma ti sbagli, ho spiegato bene in che consiste la mia problematica.

  10. #10
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Sei riuscito a risolvere con quello che ti abbiamo consigliato o hai riscontrato dei problemi?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  11. #11
    solitarybeach non è connesso Neofita
    Data registrazione
    16-11-2004
    Messaggi
    8

    Predefinito

    Citazione Originalmente inviato da dementialsite
    Codice PHP:
    function phpWrapper($content) {
    ob_start();
    $content = str_replace('<'.'?php','<'.'?',$content);
    eval(
    '?'.'>'.trim($content).'<'.'?');
    $content = ob_get_contents();
    ob_end_clean();
    return
    $content;
    }
    Prima di risponderti avevo già provato la tua soluzione.
    La tua soluzione funziona solo in alcuni casi.
    Io sto costruendo un motore di ricerca interno e le pagine da "leggere" hanno a loro volta degli include, dei riferimenti relativi ad altri file e si trovano in posizioni diverse.
    Quindi si è soggetti a dei problemi di path di esecuzione.
    Inoltre le pagine da "leggere" hanno consistenza solo se sollecitate da query tipo:

    Codice PHP:
    "mio_scriipt.php?var1=val1&var1=val2"
    e questo complica di molto la scrittura del codice.
    Ho scelto di adottare la soluzione di funcool
    Citazione Originalmente inviato da funcool
    Codice PHP:
    ob_start();
    include(
    "pagina.php"); // Può essere anche una pagina HTML.
    $codice=ob_get_contents();
    ob_end_clean();
    che anche se presenta sempre le problematiche citate permette di risolverle con meno complessita di codice.

    Citazione Originalmente inviato da funcool
    Sei riuscito a risolvere con quello che ti abbiamo consigliato o hai riscontrato dei problemi?
    Si, ti sono molto grato, perchè per quello che devo fare ho adottato la soluzione che mi hai indicato.
    Problemi ne ho riscontrati tanti ma studiando sto riuscendo a risolverli.

    Grazie a tutti per la cordialità
    Ciao!
    Ultima modifica di solitarybeach : 19-12-2006 alle ore 14.28.22

Regole di scrittura

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