2010-09-13 19 views
9

Il soggetto è possibile? Ho uno script in esecuzione. A un certo punto ho una grande porzione di testo in una variabile. Posso renderlo disponibile come file scaricabile senza scrivere effettivamente contenuti variabili su disco?php: scarica il contenuto variabile come file

<?php 
    echo "Hello"; 
    //how do I make the content of this variable downloadable? 
    $download_me = "download me..."; 
    echo "Bye"; 
?> 

risposta

16

se si intende lasciare che l'utente clicca su un link e una finestra di dialogo pop-up per salvare alcuni contenuti come file di testo:

<?php 
$download_me = "download me..."; 
header("Content-type: text/plain"); 
header("Content-Disposition: attachment; filename=test.txt"); 
echo $download_me; 
?> 

è che quello che si sta puntando a? Inoltre, è possibile scrivere alcune righe che consentono di inviare le intestazioni in questo modo solo se è impostata una determinata variabile $_POST o $_GET.

+0

Grazie. Ma dove inserisco la mia variabile $ download_me? Non ho file come test.txt memorizzati su disco. – facha

+1

aggiungi le intestazioni di echo. test.txt è il nome file che l'utente vede, non un file sul server – SamWM

+0

Funziona alla grande. molte grazie. – facha

7

Esso dovrebbe essere simile a questo:

<?php 
    header("Content-type: text/plain"); 
    header("Content-Disposition: attachment; filename='whatever.txt'"); 
    echo $your_text; 
?> 
+0

Inserisco il tuo blocco di codice nella prima risposta. – Serrano

+0

Quindi, la risposta è che sono andato per sempre nell'abisso? C'è un modo per vedere la mia risposta se volessi? – d2burke

+0

@ d2burke: la tua risposta è ancora valida, ma è stato migliorato solo il blocco di codice (in effetti, il codice che hai fornito non funziona come dovrebbe a causa delle virgolette). Puoi cliccare sul link "modificato il 27 agosto 12 alle 15:36" sotto la risposta per vedere la tua risposta originale e esattamente cosa ho cambiato. – Serrano