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


Can I use PHP to save only the visible elements of the output as a new file?

我有一个php文件,需要一个xml文件(由外部源生成),并重新格式化它与CSS &超文本标记语言许多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。

我希望我说的很清楚。谢谢你的帮助和建议。

我认为您必须手动剥离不需要的部分,使用RegEx的东西,这可能像:

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