我使用file_get_contents()
获取一个PHP文件,我将其用作创建PDF的模板。
我需要传递一些POST
值,以便填充模板并将生成的HTML恢复为PHP变量。然后将其与mPDF一起使用。
这完全适用于我的服务器(使用PHP 5.6.24的VPS)......
现在,我正在客户端的实时站点上安装经过全面测试的脚本(PHP 5.6.29),
我收到这个错误:
PHP警告:file_get_contents(http://www.example.com/wp-content/calculator/pdf_page1.php):无法打开流:HTTP请求失败! HTTP / 1.1 406不可接受
所以我想这可以在php.ini
或一些配置文件中修复
我可以问(我想要!!)我的客户联系他的主人解决它...
但是我知道主持人通常不会改变服务器配置...... 我想确切知道要在哪个文件中更改以允许下面的代码工作。
对于我的个人知识......显然 但也要让它看起来容易"为主机(和我的客户!!)有效地改变它。 ;)
我非常确定这只是一个奇怪名称的PHP配置参数...
<?php
$baseAddr = "http://www.example.com/wp-content/calculator/";
// ====================================================
// CLEAR OLD PDFs
$now = date("U");
$delayToKeepPDFs = 60*60*2; // 2 hours in seconds.
if ($handle = opendir('.')) {
while (false !== ($entry = readdir($handle))) {
if(substr($entry,-4)==".pdf"){
$fileTime = filemtime($entry); // Returns unix timestamp;
if($fileTime+$delayToKeepPDFs<$now){
unlink($entry); // Delete file
}
}
}
closedir($handle);
}
// ====================================================
// Random file number
$random = rand(100, 999);
$page1 = $_POST['page1']; // Here are the values, sent via ajax, to fill the template.
$page2 = $_POST['page2'];
// Instantiate mpdf
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new mPDF( __DIR__ . '/vendor/mpdf/mpdf/tmp');
// GET PDF templates from external PHP
// ==============================================================
// REF: http://stackoverflow.com/a/2445332/2159528
// ==============================================================
$postdata = http_build_query(
array(
"page1" => $page1,
"page2" => $page2
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
// ==============================================================
$STYLE .= file_get_contents("smolov.css", false, $context);
$PAGE_1 .= file_get_contents($baseAddr . "pdf_page1.php", false, $context);
$PAGE_2 .= file_get_contents($baseAddr . "pdf_page2.php", false, $context);
$mpdf->AddPage('P');
// Write style.
$mpdf->WriteHTML($STYLE,1);
// Write page 1.
$mpdf->WriteHTML($PAGE_1,2);
$mpdf->AddPage('P');
// Write page 1.
$mpdf->WriteHTML($PAGE_2,2);
// Create the pdf on server
$file = "training-" . $random . ".pdf";
$mpdf->Output(__DIR__ . "/" . $file,"F");
// Send filename to ajax success.
echo $file;
?>
只是为了避免&#34;到目前为止您尝试了什么?&#34; 评论
我在许多组合中搜索了这些关键字,但没有找到需要更改的设置: