查找PHP脚本输出字符串的位置

查找PHP脚本输出字符串的位置,php,output,stdout,Php,Output,Stdout,当我运行phpsomescript.php时,我会得到一些预期的输出和一些意外的字符串。它们看起来像调试字符串,可能是在开发过程中放在那里的。该文件是更大框架的一部分,可以包括可能需要其他文件的其他文件 我不知道使用哪个函数(echo、print、var_dump、write等)来输出(不需要的)字符串 如何找到将(动态生成的)字符串输出到stdout的位置的文件和行号 谢谢 您应该能够从输出的结构判断它是var_dump、dd还是更基本的echo。如果你在代码库中搜索echo,实际上有那么多吗

当我运行
phpsomescript.php
时,我会得到一些预期的输出和一些意外的字符串。它们看起来像调试字符串,可能是在开发过程中放在那里的。该文件是更大框架的一部分,可以包括可能需要其他文件的其他文件

我不知道使用哪个函数(echo、print、var_dump、write等)来输出(不需要的)字符串

如何找到将(动态生成的)字符串输出到stdout的位置的文件和行号


谢谢

您应该能够从输出的结构判断它是var_dump、dd还是更基本的echo。如果你在代码库中搜索echo,实际上有那么多吗


您可以尝试使用xdebug开始逐行遍历代码,并找出它的打印位置。如果正在打印的字符串确实没有静态文本,您可以对代码库进行grep,这就是我要开始的地方。

这有点难看,但您可以尝试弄乱输出缓冲区。以下方法似乎适合我:

<?php
$locations = [];
ob_start(function($buffer) {
  global $locations;
  $locations[] = debug_backtrace();
  return $buffer;
}, 1);

// Your code with output here.

// $locations should contain the information now
print_r($locations); 
?>

您是否尝试过在IDE中加载应用程序,并在代码中搜索意外输出字符串的一些子字符串?