PHP - dinamik bir dizeye oluşturulan (ve yankılandı) HTML oku?

6 Cevap php

Ben veritabanından bazı bilgileri çeker ve bazı nispeten basit dinamik HTML oluşturur bir dosya var.

Daha sonra dosya bir PDF belgesine dönüştürmek için DOMPDF tarafından kullanılabilir. DOMDPF değişkenleri temel uygulanmasını sağlamak için GET kullanır.

ob_start();
include_once("report.php?id=1249642977");

require_once("dompdf/dompdf_config.inc.php");

$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_contents());
$dompdf->render();
$dompdf->stream("sample.pdf", array('Attachment'=>'0'));

ob_end_clean();

Ben amaca ulaşmak için o şey İLKE kullanmak mümkün olabilir ama şaşırtıcı olmayan bir şekilde işe yaramadı düşündüm.

Peki sana nasıl DOMPDF sınıfında kullanılmak üzere bir dizeye, doğrudan dosya yüklemek olsaydı tarayıcıya çıkışını alır HTML okuyabilir?

6 Cevap

Iki sorun.

Öncelikle, bunu kullanarak include_once böyle bir PHP sayfası diyemezsin - Sorgu dizesi göz ardı edilecektir. Siz başka bir yol report.php için id vermek zorunda.

İkinci olarak, doğru çıktı tampon ediyoruz. Ancak, DOMPDF için geçerli çıkış tamponu geçerek çıkış tamponuna bir PDF oluşturmak için bunu söylüyorum, ve çıkış arabelleği atarak ediyoruz. Muhtemelen gibi bir şey istiyorum:

$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_clean());
$dompdf->render();
$dompdf->stream("sample.pdf", array('Attachment'=>'0'));

Yani, akım çıkışı tampon almak atın ve çıkış belleğe alma devre dışı olacak. $ DOMPDF-> akışı daha sonra çalışması gerekir.

BlackAura doğru yolda olduğunu. Diğerleri önerilen gibi file_get_contents, GET vars (veya POST) boyunca geçmek olmaz. Ama bunu yapmak için cURL kullanabilirsiniz. Aşağıdaki kod çalışır:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://YOURFULLURL.COM/report.php?id=1249642977');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$my_html = curl_exec($ch);
curl_close($ch);

$dompdf = new DOMPDF();
$dompdf->load_html($my_html);
$dompdf->render();
$dompdf->stream("sample.pdf", array('Attachment'=>'0'));

Umut olur.

-Kevin

Ne HTML dosyasını almak için basit bir HTTP isteği kullanarak ilgili ve $ DOMPDF nesne yüklemeden daha:

   <?php
    //...
    $dompdf->load_html(file_get_contents("http://yoursite.net/report.php?id=1249642977"));
   //...
   ?>

Burada çıktı tamponlama gerekir neden görmüyorum ..

Basitçe PHP'nin file_get_contents gibi kullanın:

$page_html = file_get_contents("page.php?id=number");

sonra dompdf dolar page_html geçmek.

Bu yardımcı olur umarım :)

Ben sonuçta bir HTML dize döndüren bir fonksiyon olur böylece HTML üretir php sayfasını değiştirmeye karar verdi. Bu bir çözüm daha bir geçici çözüm daha fazladır.

Bu sayfada gelecekteki Googlers DOMPDF kullanarak bir sayfada inline PHP çalıştırmak için izin verir farkında olmalıdır:

<script type="text/php">
   //some PHP here
</script>

BlackAura doğru fikri var. Sen çıkış tamponuna oluşturulan PDF ekleme, ve sonra her şeyi atarak ediyoruz.