Когда я запускаю php someScript.php
, я получаю ожидаемый результат и несколько неожиданных строк. Они выглядят как отладочные строки и, вероятно, были помещены туда во время разработки. Файл является частью более крупной структуры и может включать другие файлы, которым в дальнейшем могут потребоваться другие.
Я понятия не имею, какая функция (echo, print, var_dump, write, ...) используется для вывода (нежелательных) строк.
Как мне найти файл и номер строки места, где (динамически сгенерированная) строка выводится на стандартный вывод.
Спасибо!
Вы должны быть в состоянии определить по структуре вывода, является ли это var_dump, dd или это более простое эхо. Если вы поищете в кодовой базе эхо, действительно ли их так много?
Вы можете попробовать использовать xdebug, чтобы начать пошаговое выполнение кода построчно и выяснить, где он печатается. Если печатаемая строка действительно не имеет статического текста, для которого вы можете найти кодовую базу, я бы начал с этого.
Это немного некрасиво, но вы можете попробовать испортить выходные буферы. Мне кажется, что мне подходит следующий подход:
<?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 и найти в коде некоторые подстроки неожиданно выводимых строк?