如何在以下场景中使用变量名来代替字符串?

时间:2013-11-15 16:28:41

标签: php syntax syntax-error

我的代码如下:

header("Content-Disposition: attachment; filename=\"pdf_practice_sheet_90_with_header_8.pdf\"");

现在这里没有硬编码的名称值,即 pdf_practice_sheet_90_with_header_8.pdf 我想以下列方式使用我的变量之一的动态值:

header("Content-Disposition: attachment; filename=\".$practice_sheet_details['practice_sheet_name'].".pdf\"");

但我收到的错误如下:

PHP Parse error:  syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in pdf_practice_sheet.php on line 91
Errors parsing pdf_practice_sheet.php

实际上我想将文件名用作变量$practice_sheet_details['practice_sheet_name']的值,并将该名称与.pdf扩展名连接,但我无法正确获取它。任何人都可以帮我解决这个问题吗?

5 个答案:

答案 0 :(得分:3)

像这样使用:

$filename = $practice_sheet_details['practice_sheet_name'];
header("Content-Disposition: attachment; filename=\"" . $filename . ".pdf\"");

此外,由于文件名可以是任何内容,我建议转义

$filename = $practice_sheet_details['practice_sheet_name'] . ".pdf";
header("Content-Disposition: attachment; filename=\"".urlencode($filename)."\"");

我相信urlencode是正确的逃避使用但不要限制我。

答案 1 :(得分:1)

您在filename=\"之后错过了引用。

header("Content-Disposition: attachment; filename=\"".$practice_sheet_details['practice_sheet_name'].".pdf\"");

答案 2 :(得分:0)

你可以这样做:

header("Content-Disposition: attachment; filename=\"".$practice_sheet_details['practice_sheet_name'].".pdf\"");

您忘记在\"之后添加未转义的引号。

答案 3 :(得分:0)

header("Content-Disposition: attachment; filename=\"{$practice_sheet_details['practice_sheet_name']}.pdf\"");

答案 4 :(得分:0)

你能试试吗,

   header("Content-Disposition: attachment; filename=".$practice_sheet_details['practice_sheet_name'].".pdf");