php 5.3 — Альтернативная буферизация вывода Переполнение стека

Я пытаюсь сохранить содержимое файла в 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, и переменную $ содержание фактический контент с обработанными кодами PHP и все. Это хорошо работает на Apache, но не на IIS.

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

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

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

0

Решение

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

1

Другие решения

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

0

Самый простой подход — отредактировать 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, и я не говорю, что это хорошее программирование, но если вы хотите избежать редактирования файлов конфигурации, это будет быстро и легко.

0
По вопросам рекламы [email protected]