Найти, где PHP-скрипт выводит строку - PullRequest
0 голосов
/ 26 сентября 2018

Когда я запускаю php someScript.php, я получаю некоторые ожидаемые результаты и некоторые неожиданные строки.Они выглядят как строки отладки и, вероятно, были размещены там во время разработки.Этот файл является частью более крупного каркаса и может включать в себя другие файлы, которые могут потребовать других.

Я понятия не имею, какая функция (echo, print, var_dump, write, ...) используется для вывода(нежелательные) строки.

Как найти файл и номер строки в месте, где (динамически генерируемая) строка выводится на стандартный вывод.

thx!

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Это немного уродливо, но вы можете попытаться возиться с выходными буферами.Кажется, мне подходит следующий подход:

<?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); 
?>
0 голосов
/ 26 сентября 2018

Вы должны быть в состоянии определить по структуре вывода, является ли это var_dump, dd, или это более базовое эхо.Если вы ищете в кодовой базе эхо, их на самом деле так много?

Вы можете попробовать использовать xdebug, чтобы начать поэтапно обходить код и выяснять, где он печатается.Если в напечатанной строке действительно нет статического текста, к которому можно добавить кодовую базу, я бы начал с этого.

...