Найдите, где PHP-скрипт выводит строку

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

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

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

Спасибо!

Вы пробовали загрузить приложение в IDE и найти в коде некоторые подстроки неожиданно выводимых строк?

nl-x 26.09.2018 17:14
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
137
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы должны быть в состоянии определить по структуре вывода, является ли это 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); 
?>

Другие вопросы по теме