输出缓冲替代php

时间:2014-10-31 14:28:47

标签: php php-5.3 output-buffering

我正在尝试使用html2pdf将文件内容保存为PDF,但该文件包含一些需要处理的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代码和我希望保存为PDF的HTML内容的文件,变量 $ content 是实际的内容与PHP代码处理和一切。这适用于Apache,但不适用于IIS。

是否有人知道使用输出缓冲使其工作的另一种方法?我试过file_get_contents('my_file.php');但我的my_file.php中的php内容在我这样做时没有得到处理。

请问,我正在寻找无需输出缓冲的方法,以便它可以在任何服务器上运行。我不是在寻找答案,告诉我要更改我的IIS服务器配置或使用除html2pdf之外的其他内容。

提前感谢您提供任何帮助

3 个答案:

答案 0 :(得分:1)

如果您可以修改my_file.php的内容,则可以将所有文本放入变量中,而不是直接输出。

答案 1 :(得分:0)

您可以使用PHP / PDF库http://php.net/manual/en/book.pdf.php
并按照这个例子:http://php.net/manual/en/pdf.examples-basic.php
希望有所帮助:)

答案 2 :(得分: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输出的一种丑陋方式,我并不是说它的编程很好,但是如果你想避免编辑配置文件,它会很快捷。