[英]Downloading php file using mpdf
我正在嘗試使用 mpdf 下載從數據庫生成的 php 發票。 不幸的是,它只指向頁面而不下載。 那么 mpdf 是否可以從另一個目錄下載 php 文件,我該如何實現。
<?php
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \Mpdf\Mpdf();
include '../invoice-view.php';
$data = 'invoice-view.php';
$mpdf->WriteHTML($data);
$mpdf->Output('invoice.pdf', 'D');
?>
它重定向到頁面並且不下載 php 文件。
解決方案
<?php
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \Mpdf\Mpdf();
$data = file_get_contents('invoice-view.php');
$mpdf->WriteHTML($data);
$mpdf->Output('invoice.pdf', 'D');
?>
或者您使用CURL函數獲取內容。
<?php
$url="DOMAIN_NAME"."/invoice-view.php";
$timeout = 5;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt ( $ch , CURLOPT_CONNECTTIMEOUT , $timeout );
$data = curl_exec($ch);
curl_close($ch);
$mpdf->WriteHTML($data);
$mpdf->Output('invoice.pdf', 'D');
?>
使用 curl 函數示例
測試文件
$params=array('name'=>'XYZ');
$data = file_get_contents_by_curl('http://localhost/test2.php',$params);
$mpdf->WriteHTML($data);
$mpdf->Output('invoice.pdf', 'D');
function file_get_contents_by_curl($url,$params) {
$timeout = 5;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $params );
curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'POST' );
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt ( $ch , CURLOPT_CONNECTTIMEOUT , $timeout );
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
測試2.php
<h1>
Hi,<?php echo $_POST['name'];?></h1>
為了初始化$data
你應該使用這個
$data = require '../invoice-view.php';
在invoice-view.php
生成html 字符串並返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.