无法在此PHP脚本中将值传递为变量

时间:2013-12-12 04:27:54

标签: php

就像问题所说,我似乎无法在以下脚本中传递变量中的值。如果我回显该变量,它就会按预期存在。如果我将回显的值复制并粘贴到$ my_var所在的代码中,则可以正常工作。但它不能与$ my_var一起使用?!?!?

上下文代码需要另一个文件来创建pdf,将其附加到电子邮件并发送,然后在浏览器中显示。为简洁起见删除了大部分代码

$my_var = $_POST['quote_number'];
$filename = 'Quote_no' . $my_var . '.pdf';
$file = $_SERVER['DOCUMENT_ROOT'] . '/quotes/' . $filename ;
require('instant_quote.php');
function send_quote($my_var) {
     //my_function code
   };
send_quote($my_var);
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);

2 个答案:

答案 0 :(得分:1)

您的示例中的语法突出显示很有帮助,您的匹配引号不正确:

$filename = "Quote_no' . $my_var . '.pdf";

......应该是:

$filename = 'Quote_no' . $my_var . '.pdf';

答案 1 :(得分:1)

不知道为什么会这样,但它确实......

header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $file . '"');
header('Content-Length: ' . filesize($filename));
@readfile($filename);

刚从标题中删除了传输编码和接受范围,它开始接受我的变量作为值... go figure