我正在尝试打印出$name
但它继续打印$name
而不是这里的值是行:
header('Content-Disposition: attachment; filename="$name"');
答案 0 :(得分:4)
PHP只会评估双引号字符串中的变量,而不是像您在示例中使用的单引号字符串。
尝试这样做(如果需要在双引号字符串中输出双引号,则需要使用反斜杠转义它们,否则PHP会将它们视为字符串结尾分隔符):
header("Content-Disposition: attachment; filename=\"$name\"");
答案 1 :(得分:2)
单引号之间不会发生字符串插值。
$name = "test";
echo "Value: $name"; // Value: test
echo 'Value: $name'; // Value: $name
更多详情here。
答案 2 :(得分:2)
我认为这就是你要找的东西
header('Content-Disposition: attachment; filename="'.$name.'"');
这会产生如下标题:
Content-Disposition: attachment; filename="some_file_name.ext"
希望这有帮助
另一种方法是使用sprintf
$header = sprintf('Content-Disposition: attachment; filename="%s"',$name);
header($header);
sprintf
并不是真的需要,但会向您展示如何将变量放入标题字符串
答案 3 :(得分:1)
处理single-quoted
字符串时,总是连接变量。
header('Content-Disposition: attachment; filename="' . $name . '"');
答案 4 :(得分:0)
试试这样:
header('Content-Disposition: attachment; filename='.$name);
答案 5 :(得分:0)
为什么不使用"
代替'
,如:
header("Content-Disposition: attachment; filename=$name");
答案 6 :(得分:-1)
header('Content-Disposition: attachment; filename='.$name);