2010-09-13 16 views
9

¿Es posible el asunto? Tengo un script en ejecución. En un momento dado tengo una gran pieza de texto en una variable. ¿Podría hacer que esté disponible como un archivo descargable sin escribir realmente contenido variable en el disco?php: descargar contenido variable como archivo

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

Respuesta

16

Si se refiere a permitir que el usuario haga clic en un enlace y tienen un cuadro de diálogo pop-up para salvar ciertos contenidos como un archivo de texto:

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

es eso lo que usted está apuntando a? Además, es posible que desee escribir unas pocas líneas que solo permitan que los encabezados se envíen de esta manera si se establece una cierta variable $_POST o $_GET.

+0

Gracias. Pero, ¿dónde pego mi variable $ download_me? No tengo ningún archivo como test.txt almacenado en el disco. – facha

+1

agrega los encabezados que el eco. test.txt es el nombre de archivo que ve el usuario, no un archivo en el servidor – SamWM

+0

Funciona muy bien. muchas gracias. – facha

7

Se debe tener este aspecto:

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

Pongo su bloque de código en la primera respuesta. – Serrano

+0

Entonces, ¿la respuesta es que me he ido para siempre al abismo? ¿Hay alguna manera de ver mi respuesta si quisiera? – d2burke

+0

@ d2burke: Su respuesta sigue en pie, pero solo se mejoró el bloque de código (de hecho, el código como lo dio no funciona como debería debido a las comillas dobles). Puede hacer clic en el enlace "edited Aug 27 '12 at 15:36" debajo de la respuesta para ver su respuesta original y exactamente lo que cambié. – Serrano

Cuestiones relacionadas