gpt4 book ai didi

php - 是否可以确定哪个 PHP 文件生成了一些输出

转载 作者:可可西里 更新时间:2023-10-31 23:40:43 27 4
gpt4 key购买 nike

有时我会遇到一些问题,在某些情况下,大型系统上某处的 PHP 文件会产生虚假输出。

这可能是因为有人不小心在 <?php 之前键入了空格或其他字符打开标签,或留下不需要的调试 echo在最终关闭后放置或包含一些空格 ?>标签。

有什么方法可以生成一个日志,显示生成某些输出的所有 PHP 文件,以及它们生成的输出?

如果没有,是否可以建议任何其他方法来追踪我所描述的问题?

编辑:澄清一下——我正在运行的系统是 Moodle(不直接相关,但正如被问到的那样……)并且在这种情况下,输出是在数据库升级期间(但我有类似的其他时间输出随机字符的问题)。有大量不同的 PHP 脚本被加载到内存中以生成页面,因此手动找出生成不需要的输出的脚本并不是一个非常诱人的前景......

最佳答案

如果您“唯一”关心的是 php 标签之外的文本 token_get_all()可能会帮助你。 php 标签之外的所有内容(?)都报告为 T_INLINE_HTML (312),因此很容易过滤。
例如

<?php
for($t=0;$t<10; $t++) { ?>

<?php
}
?>

<?php
$at = token_get_all( file_get_contents(__FILE__) );
foreach($at as $t) {
if ( is_array($t) && T_INLINE_HTML===$t[0]) {
echo 'inline html @ line ', $t[2], "\r\n";
}
}

打印(一些空行和)

inline html @ line 3
inline html @ line 7

将它与类似 get_included_files() 的东西结合起来或 RecursiveDirectoryIterator并且您有一个临时工具来完成这项任务。

关于php - 是否可以确定哪个 PHP 文件生成了一些输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22715401/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com