2011-07-28 31 views
2

我想要將php變量插入到下面的代碼中。當彈出的文檔下載出現時,它顯示$ filename而不是實際的文件名。我怎樣才能做到這一點?在文檔頭中使用PHP變量

代碼:

<?php 
header('Content-disposition: attachment; filename=$filename'); 
header('Content-type: $type'); 
readfile('$filename'); 
?> 

回答

4

您正在使用單引號。不評估使用單引號的字符串文字內部的變量。改爲使用連接或雙引號。

<?php 
header("Content-disposition: attachment; filename=$filename"); // double quotes 
header('Content-type: ' . $type); // concatenation 
readfile($filename); // no quotes needed 
?> 

See the PHP manual page for the String type

+0

它的工作原理,但現在我得到這個錯誤:無法打開該文件。它可能已損壞或者Preview無法識別的文件格式。 – KPO

+1

@KPO那麼,你必須弄清楚你發送的錯誤。這是一個不同的問題。 – lonesomeday

2

使用",不',得到變量的值,而不是名字。當你使用"時,變量被解析(解析需要使用{和}的數組元素,但我相信你會在需要時找到它)。

2

使用雙引號:"而不是單引號:'

2

使用"報價。 PHP不會用'引號中的字符串替換變量。

2

你並不需要在這裏報價,只需使用

header('Content-disposition: attachment; filename='.$filename); 
header('Content-type: '.$type); 
readfile($filename);