PHP- 동적으로 생성 (및 반향) HTML을 문자열로 읽으십니까?

StackOverflow https://stackoverflow.com/questions/1245438

  •  12-09-2019
  •  | 
  •  

문제

데이터베이스에서 정보를 가져오고 비교적 간단한 동적 HTML을 생성하는 파일이 있습니다.

그런 다음 파일을 DOMPDF에서 PDF 문서로 전환하기 위해 파일을 사용할 수 있습니다. DOMDPF는 GET 변수를 사용하여 기본 구현을 달성합니다.

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();

나는 목표를 달성하기 위해 무언가를 사용할 수 있다고 생각했지만 의심 할 여지없이 효과가 없었습니다.

그렇다면 파일을 직접로드하려면 DOMPDF 클래스와 함께 사용하기 위해 파일을 직접로드하려면 브라우저에 출력되는 HTML을 어떻게 읽을 수 있습니까?

도움이 되었습니까?

해결책

두 가지 문제.

먼저 포함 _once를 사용하여 PHP 페이지를 호출 할 수 없습니다. 쿼리 문자열은 무시됩니다. repler.php에 ID를 제공해야합니다.

둘째, 출력을 올바르게 버리고 있습니다. 그러나 현재 출력 버퍼를 DOMPDF로 전달하여 출력 버퍼에 PDF를 생성하고 출력 버퍼를 폐기하도록 지시합니다. 당신은 아마도 다음과 같은 것을 원할 것입니다.

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

그렇다면 현재 출력 버퍼가 발생하여 버리고 출력 버퍼링을 비활성화합니다. 그런 다음 $ dompdf-> 스트림이 작동해야합니다.

다른 팁

간단한 HTTP 요청을 사용하여 HTML 파일을 가져 와서 $ dompdf 객체에로드하는 것보다 :

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

왜 여기에 출력 버퍼링이 필요한지 모르겠습니다 ..

Blackaura는 올바른 길을 가고 있습니다. 다른 사람들이 제안한 것처럼 file_get_contents는 get vars (또는 post)를 따라 전달하지 않습니다. 그러나 컬을 사용하여 그렇게 할 수 있습니다. 아래 코드는 작동해야합니다.

$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'));

도움이되기를 바랍니다.

-Kevin

PHP를 사용하십시오 file_get_contents 따라서 :

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

그런 다음 $ page_html을 dompdf로 전달하십시오.

도움이 되었기를 바랍니다 :)

결국 HTML을 생성하는 PHP 페이지를 변경하여 HTML 문자열을 반환하는 기능이됩니다. 이것은 솔루션보다는 해결 방법입니다.

이 페이지의 향후 Googlers는 DOMPDF가 다음을 사용하여 페이지에서 인라인 PHP를 실행할 수 있음을 알고 있어야합니다.

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

Blackaura는 올바른 아이디어를 가지고 있습니다. 생성 된 PDF를 출력 버퍼에 추가 한 다음 모든 것을 폐기합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top