我可以使用PHP仅将输出的可见元素保存为新文件吗?

时间:2011-11-23 02:41:14

标签: php html save visible

我有一个php文件,它接受一个xml文件(由外部源生成)并使用CSS&amp ;;重新格式化。 HTML。许多XML标签是我不希望在最终版本中看到的东西,因此我将它们隐藏起来。最终结果是这样的:

<html>
<div style="display: none">
    content i don't want to see
</div>

content I do want to see.

</html>

有没有办法可以将生成的html文件显示在浏览器窗口中,

content I do want to see.

...并将其另存为文本文件?我希望它忽略所有隐藏的<div>标记,只保存用户可以选择和复制的标记。

我四处寻找答案,但我甚至不确定我在寻找什么或如何搜索它。

我也试过这个:

ob_start();
file_put_contents('filename.htm', ob_get_contents());
ob_end_flush();

......但这并没有解决它。我在输出的测试(&gt;等)中有许多标记需要在显示时保存,而ob_get_contents()采用页面的源代码,而不是显示的版本。

这很重要,因为输出的页面也是基于其他因素生成的PHP,因此我需要使用html unicode值来保持$符号和引号不会弄乱源PHP。

我希望这很清楚。提前感谢您的任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

我认为你必须手动删除不需要的部分,使用RegEx的东西,这可能是:

$content_raw = ob_get_contents();
$content_stripped = preg_replace($content_raw, '<div style="display: none">[^<>]*</div>', '');
file_put_contents('filename.htm', $content_stripped);