Выходная буферизация альтернативы php

Я пытаюсь сохранить содержимое файла в PDF с помощью html2pdf, но в файле есть несколько кодов PHP, которые необходимо обработать. Я провел некоторое исследование и обнаружил, что мне пришлось использовать буферизацию вывода, чтобы можно было обработать содержимое PHP в файле. Итак, я сделал что-то вроде:

<?php 
    require_once('html2pdf.class.php');    

    ob_start();
    require_once('my_file.php');
    $content = ob_get_clean();

    // force download of $content to a PDF
    $html2pdf = new HTML2PDF('P','A3','fr', false, 'ISO-8859-1');
    $html2pdf->writeHTML($content);
    $html2pdf->Output('file_name.pdf', 'D');
?>

Файл my_file.php - это файл, в котором есть некоторый код PHP и контент HTML, который я хочу сохранить в PDF, а переменная $content - это фактический контент с обработанными кодами PHP и всем прочим. Это хорошо работает на Apache, но не на IIS.

Кто-нибудь знает альтернативный способ сделать эту работу без использования буферизации вывода? Я попытался file_get_contents('my_file.php'); но мое php-содержимое в my_file.php не обрабатывается, когда я это делаю.

Пожалуйста, я ищу способы сделать это без буферизации вывода, чтобы он мог работать на любом сервере. Я не ищу ответов, говорящих мне об изменении конфигурации сервера IIS или использовании чего-либо другого, кроме html2pdf.

Заранее благодарю за любую помощь

3 ответа

Если вы можете изменить содержимое my_file.phpВы можете поместить весь текст в переменную там, а не выводить его напрямую.

Самый простой подход - это отредактировать my_file.php, чтобы он не содержал HTML, а назначал содержимое HTML переменной PHP. Тогда все, что вам нужно сделать, это повторить переменную.

//other PHP processing goes here, or anywhere else.

$someVar = "hello world";

$myHTML = "<html>My output: $someVar </html>";

echo $myHTML;

Это уродливый способ обработки вывода HTML, и я не говорю, что это хорошее программирование, но если вы хотите избежать редактирования файлов конфигурации, это будет быстро и легко.

Вы можете использовать PHP / PDF Library http://php.net/manual/en/book.pdf.php
И следуйте этому примеру: http://php.net/manual/en/pdf.examples-basic.php
Надеюсь, это поможет:)

Другие вопросы по тегам