2016-12-08 6 views
0

TCPDFからdomPDFに切り替えたので、htmlからpdfへの請求書を作成するときに処理する方が便利です(私はPHPではかなりプロです:))。今、私はPDFファイルとしてhtmlファイルを作成しましたが、私はそれがPDFでPHPを出力しないことを認識しました - 私のSQLデータバンクからのデータは、それはちょっとした問題です。(Inline)domPDF 7.0のPHP

src-folderに含まれているoptions.phpでPHPを有効にでき、マニュアルに書かれているようにしようとしましたが(ほかにもさまざまなコード行を試しましたが)作業する:

$root = realpath($_SERVER["DOCUMENT_ROOT"]); 

require_once ("$root/../xxx/dompdf/autoload.inc.php"); 

use Dompdf\Dompdf; 
use Dompdf\Options; 

$options = new Options(); 
$options->setIsPhpEnabled('true'); 
$dompdf = new Dompdf($options); 

$dompdf->loadHtml(file_get_contents("testdomhtml.php")); 

$dompdf->setPaper('A4', 'portrait'); 

$dompdf->render(); 

$dompdf->stream("bla",array("Attachment"=>0)); 

PDFは表示されますが、PHPコードの入力はありません。

誰かがとても親切であれば、私は実際にそれを自分のビジネスに使用したいので、PHPがセキュリティ上のリスクになる理由とその理由を知ることに興味があります。外部のHTMLやCSSファイルを読み込まなくても、メインのPHPファイルにまとめておくことをお勧めしますか?

ありがとうございます!

答えて

0

あなたはこのようなことを行うことができます(コードはテストされていません)。

ob_start(); 
include 'testdomhtml.php'; 
$output = ob_get_clean(); 
$dompdf->loadHtml($output); 

オプションの助けをHow to execute and get content of a .php file in a variable?

+0

この作品はありがとうございます!そしてリンクのおかげで! – Franky2207

0

file_get_contents("testdomhtml.php")は、実際のファイルの内容を取得し、内部でコードを実行しません。代わりに、ウェブにアクセスしてこのページにURLを渡してください:

$dompdf->load_html_file('http://yourdomain.ext/testdomhtml.php'); 
+0

おかげで

$dompdf->loadHtml(file_get_contents("testdomhtml.php")); 

を交換してください! '致命的なエラー: 'リモートファイルが要求されましたが、リモートファイルのダウンロードが無効です。'というメッセージで 'Dompdf \ Exception'というキャッチされていない例外がスローされました。 /var/www/web1159/files/dompdf/src/Dompdf.php:364' - リモートファイルリクエストを最初に有効にする必要があると思います。上記の方法よりも優れた方法だとお考えですか?今のところ私は@ ziah75によって提出されたソリューションを使用しています – Franky2207