Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247

    Eseguire uno script PHP e catturarne l'output

    Salve a tutti,

    come faccio con PHP ad eseguire uno script senza includerlo nello script attuale (e quindi senza condividere funzioni e variabili) e catturarne l'output?

    E' difficile da spiegare e non so come esprimere bene il concetto... Vi faccio un esempio. Vorrei qualcosa del tipo.

    codice:
    $output_script = execute_and_get_output("script.php?param1=test&param2=test");
    Mi è venuto in mente che potrei usare un fopen, ma in tal caso il codice php verrebbe letto senza essere prima "elaborato".
    Con eval(), il codice viene eseguito internamente allo script nel quale la funzione eval() viene eseguita (condividendo funzioni e variabili), e quindi non fa al caso mio.

    Come posso fare?
    Grazie in anticipo

  2. #2
    non si capisce bene cosa devi fare o almeno io non ho capito...

    Forse un include potrebbe fare al caso tuo.. oppure un fflush ... oppure non so.. forse ci ho azzeccato o forse dovresti spigarti meglio!
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247
    Originariamente inviato da Whitecrowsrain
    non si capisce bene cosa devi fare o almeno io non ho capito...

    Forse un include potrebbe fare al caso tuo.. oppure un fflush ... oppure non so.. forse ci ho azzeccato o forse dovresti spigarti meglio!
    Un include è l'esatto contrario di quello che vorrei fare.

    Non è facile da spiegare. Allora: fai conto che ci sono degli script php fatti da qualcun altro, che funzionano bene per conto loro, restituiscono un certo output, e se vengono inclusi si creano dei casini (problemi con i percorsi d'inclusione, variabili e funzioni con lo stesso nome che creano conflitti). Allora io voglio eseguire lo script in uno spazio a parte, catturarne l'output e farci quello che voglio.

    Comunque ho risolto:

    codice:
    function esegui_script($nome_file) {
                    $contenuto_file = "";
    		$file = fopen($nome_file, "r");
    		if (!$file) {
    			return null;
    		}
    		while (!feof($file)) {
    			$contenuto_file .= fgets($file, 1024);
    		}
    		fclose($file);
    		return $contenuto_file;
    }
    $risultato = esegui_script("http://localhost/nome_dello_script.php");
    Grazie comunque!

  4. #4
    Originariamente inviato da firefox88
    Un include è l'esatto contrario di quello che vorrei fare.

    Non è facile da spiegare. Allora: fai conto che ci sono degli script php fatti da qualcun altro, che funzionano bene per conto loro, restituiscono un certo output, e se vengono inclusi si creano dei casini (problemi con i percorsi d'inclusione, variabili e funzioni con lo stesso nome che creano conflitti). Allora io voglio eseguire lo script in uno spazio a parte, catturarne l'output e farci quello che voglio.

    Comunque ho risolto:

    codice:
    function esegui_script($nome_file) {
                    $contenuto_file = "";
    		$file = fopen($nome_file, "r");
    		if (!$file) {
    			return null;
    		}
    		while (!feof($file)) {
    			$contenuto_file .= fgets($file, 1024);
    		}
    		fclose($file);
    		return $contenuto_file;
    }
    $risultato = esegui_script("http://localhost/nome_dello_script.php");
    Grazie comunque!
    ora ho capito.. sembrava una cosa tanto complicata.. ora l'hai spiegata meglio!
    infatti basta mettere dentro una variabile il risultato dello script e poi utilizzarla a piacimento!
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247
    Originariamente inviato da Whitecrowsrain
    ora ho capito.. sembrava una cosa tanto complicata.. ora l'hai spiegata meglio!
    infatti basta mettere dentro una variabile il risultato dello script e poi utilizzarla a piacimento!
    Sì, ma la cosa è molto "artigianale" e ci sono delle problematiche abbastanza serie: il tutto si complica enormemente quando si lavora su un server che ospita più siti web e non si conosce il percorso locale della pagina PHP (che portebbe essere anche /virtual1/home/pippo/publish/), e inoltre non è detto che sia permesso il loopback (http://localhost...).

    Fortunatamente lavoro su un server dedicato e quindi non si presenta questo problema...

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.