2016-10-17 2 views
-1
$file="csv.php?task=whovotedwho&election=7"; 
$filename = "whovotedwho-election7.csv"; 

if (file_exists("trash.png")) { 
     header('Content-Description: File Transfer'); 
     header('Content-Type: text/csv'); 
     header('Content-Disposition: attachment; filename="'.($filename).'"'); 
     header('Expires: 0'); 
     header('Cache-Control: must-revalidate'); 
     header('Pragma: public'); 
     header('Content-Length: ' . filesize("trash.png")); 
     readfile($file); 
     exit; 
    } else { echo "file does not exist"; } 

Получаю этот результат в csv, который загружается.Почему это и преобразовывается в & amp?

double amp in code

+0

похоже, что у вас есть несколько расширений (например, x-debug), один из них имеет ошибку и выполняет двойную кодировку html –

+0

Есть ли эквивалент 'readfile' для файлов php? – desbest

+0

Вы не загружаете файл CSV. Посмотрите, что вы получили, это сообщение об ошибке, в котором говорится, что 'readfile()' не удалось. – Barmar

ответ

4

Это:

$file="csv.php?task=whovotedwho&election=7"; 

Это не полный/абсолютный URL, как http://example.com/csv.php..., так что, когда ReadFile() умирает, он делает запрос LOCAL файл, и ищет файл чье имя буквально csv.php?tasketc... Это NOT Выполнение http-запроса - оно не может. вы не предоставили протокол или хост для этого HTTP-запроса для отправки отправленного ТО.

PHP не такой как ваш браузер, где-то вроде <img src=kittens.jpg> внутренне переведено в <img src="http://example.com/kittens.jpg">.

И, честно говоря, даже если у вас был полный URL-адрес, это очень тяжело - вы уже выполняете код на точном сервере SAME, который вы будете выполнять HTTP-запрос, так что это похоже на прыжок в вашем автомобиль и вождение 500 миль по всему городу, так что вы можете оставить 1 фута слева от того места, где вы начали.

И что вы испытываете в своих ошибках, является необработанным HTML. Так как ваше имя файла содержит &, оно должно быть закодировано в HTML, поэтому оно выводится в виде литерала & и не является RENDERED как объект html.

Смежные вопросы