【问题标题】:How to prevent an included file to generate output in PHP?如何防止包含的文件在 PHP 中生成输出?
【发布时间】:2013-07-31 12:01:57
【问题描述】:

我有一个软件,它使用模式为多条数据记录生成输出。这个文件是在特定的时间间隔生成的,由于软件是闭源的,我无法更改它。

我的模式类似于(没有尾随 CR 或 LF):

<? $elem[]='%putValueOfRecordHere%' ?>

输出将是:

<? $elem[]='1' ?>    
<? $elem[]='2' ?>    
<? $elem[]='3' ?>

事实上,软件为每条记录添加了一个 CRLF,包括和使用这个文件会在我实际使用的输出中添加很多 CRLF。

我只想知道,在包含 PHP 文件时,是否有内置方法可以删除这些空行。否则我将不得不解析这个文件,删除所有 CRLF,不使用 CRLF 保存它,然后包含修改后的文件,这非常费力。

【问题讨论】:

  • 这不应该导致换行输出。
  • 是的,我知道,但不知何故。解决方案已经在下面发布。 (输出文件有几千行,可能有比 CRLF 更多的地方)

标签: php include output


【解决方案1】:

使用输出缓冲,如果包含的脚本实际上没有生成内容(比如没有回声等),请在下面使用

ob_start();
include("myscript.php");
ob_end_clean();

如果确实生成了需要的内容,生成的内容将在$content

ob_start();
include("myscript.php");
$content = ob_get_contents();
ob_end_clean();

【讨论】:

  • 真的很有帮助.. 我得到 1 作为输出.. 现在它提供内容。
【解决方案2】:

您可以使用ob_buffers 获取文件的输出并将输出发送到遗忘:

<?php
    ob_start();
    include('file');
    ob_end_clean();
?>

【讨论】:

    猜你喜欢
    • 2014-08-20
    • 2017-02-05
    • 2012-06-08
    • 2014-06-02
    • 2010-09-29
    • 2013-10-25
    • 1970-01-01
    相关资源
    最近更新 更多