Как найти где функция на сайте

Условия:
1) удалённый хост с доступом по ssh;
2) много файлов, выкачивать их не вариант.
get_defined_functions() говорит что функция определена, интерпретатор не ругается на её вызов.
Как найти где определяется функция?

Пробовал следующее:

grep --include="*.php" -r -l "function foo_bar(" ./

Я подумал что в регексе открывающая скобка будет служебным символом, но всё всё ок. Создал файл с определением функции и только он нашёлся после того как команда отработала.


  • Вопрос задан

    более трёх лет назад

  • 3284 просмотра

<?php
function test() {
}

$ref = new ReflectionFunction('test');
echo $ref->getFileName().':'.$ref->getStartLine().PHP_EOL;

Пригласить эксперта

Я подумал что в регексе открывающая скобка будет служебным символом

Так вы и не просили поиск по регулярке. Флаги -P или -G

grep -riP 'functions+foo_bars*('  --include="*.php" ./


  • Показать ещё
    Загружается…

18 мая 2023, в 19:39

5000 руб./за проект

18 мая 2023, в 19:22

1500 руб./за проект

18 мая 2023, в 19:20

800 руб./в час

Минуточку внимания

К HTML странице прикреплено десятка полтора разных js файлов. Что можно использовать, чтобы быстро находить необходимые функции, прикрепленные к конкретному элементу верстки? Нужно узнать имя js файла, в котором она лежит, и желательно строку.

Nicolas Chabanovsky's user avatar

задан 14 окт 2011 в 15:36

BraNikita's user avatar

4

2 ответа

Это легко делается с помощью хрома:
введите сюда описание изображения

ответ дан 19 июл 2015 в 14:59

kandi's user avatar

kandikandi

5,10910 золотых знаков47 серебряных знаков96 бронзовых знаков

ответ дан 19 сен 2015 в 4:08

Nickolay's user avatar

NickolayNickolay

1,2187 серебряных знаков24 бронзовых знака

Бывает крайне необходимо, особенно при анализе чужого кода, определить местонахождение кода функции, которая, например, работает с ошибкой.

Выполняется эта задача с помощью такого кода:

    $ref = new ReflectionFunction('getCustomFunc'); 
    echo $ref->getFileName().':'.$ref->getStartLine().PHP_EOL;

Где getCustomFunc — функция, которую вы хотите найти. В итоге вы получите какой-то такой вывод:

/var/www/local/functions/utility.php:250

В этом файле в строке 250 будет находится начало функции getCustomFunc()

Хотите вы этого или нет, но рано или поздно вам придется залезть в ваши файлы WordPress и править их под свои нужды. Существует так же вариант привлечения программистов, но каждая такая просьба будет стоять вам денег, в большинстве случаев приличных денег за простую работу занимающую мало времени. Ради сохранения ваших средств, которые можно потратить на продвижения вашего сайта, а не на программиста, я научу вас быстро находить нужные участки кода в файлах плагина или темы.

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

Для чего нужен быстрый поиск по файлам php, CSS, html?

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

Вам может понадобиться найти:

  • Классы. Когда вы решите исправить какой-то класс, или же настроить его по другому вам понадобиться найти место где он используется. Будут то файлы CSS или же любые другие шаблоны темы WordPress.
  • Правка функций. Если вы решите исправить какую нибудь функцию, отлично вы сможете ее найти в файлах с функциями, но затем вам нужно будет еще определить где она вызываться в других файлах.
  • Чистка темы от лишних запросов к базе данных в WordPress. Не маловажное значение занимает уменьшение количества запросов к БД, которых WordPress генерирует очень большое количество, посредством вызова встроенных функций, к примеру bloginfo ().

Любую другую вашу проблему связанную с поиском элементов в не известном файле решит руководство представленное ниже.

Как искать участки кода в файлах?

Для начала работы нам нужно скачать и установить быстрый и полезный редактор Notepad++ который можно скачать по этой ссылке.

После установки, заходим в редактор и открываем необходимые нам файлы, я возьму файлы темы Twenty Fourteen, вы же можете использовать свои.

Для того что бы открыть все файлы темы нужно выделить их все и перетащить в окно редактора.

Поиск нужных участков кода в файлах WordPress

Файлы перенесены, в общем мы могли этого и не делать, но в дальнейшем так будет быстрее их редактировать.

Файлы в редакторе? Отлично, теперь вызываем окно поиска нажатием клавиш Shift + Ctrl + F, нам откроется следующее:

Поиск нужных участков кода в файлах WordPress

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

В поле “Папка” указываем папку с темой в которой находятся наши файлы. После этого нажимаем на кнопку “Найти всё”.

При корректном введении параметра внизу экрана вам отобразиться список файлов в которых употребляется этот класс и строчки кода, для быстрого поиска.

Находим необходимый элемент кода в файлах шаблона

В моем случае это два файла, находящиеся по указанному зеленым цветом адресу. Сам класс подсвечивается красным цветом, найти который можно при помощи горизонтальной прокрутки.

Находим необходимый элемент кода в файлах шаблона

После определения директории файла и линии в которой используется параметр, можно переходить к правке.

Для наглядности, определим еще и “злокачественный” тег bloginfo, при вызове которого создаются запросы к БД.

Поиск элементов кода во всех файлах сразу

Наверное вы будете удивлены количеством вызовов этой функции, которую можно с легкостью сделать статичной, без замедления движка.

Поиск элементов кода во всех файлах сразу

И того минимум на 8 обращений к базе данных, с каждой загрузки страницы, каждого пользователя можно избежать если правильно подкорректировать код шаблона.

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

При возникновении каких либо трудностей пишите в комментариях, попробуем помочь или же если вы знаете более быстрый способ искать нужную информацию в файлах, так же с удовольствием ознакомлюсь.

Цитата
Сообщение от Nebiros
Посмотреть сообщение

Как отследить какие js функции выполняются на сайте

Если имеется в виду отследить с помощью скрипта, то затрудняюсь ответить

Если имеется в виду вручную, то открываешь DevTools в хроме (F12), выбираешь вкладку Source и нажимаешь на значок паузы (Pause script execution)

Если в этот момент выполнялась какая-либо функция, то она остановится, и отобразится код с выделенной строкой – той, что должна в данный момент выполняться

При наведении курсора на различные переменные и ссылки отображаются их значения

Если же в данный момент функция не выполняется и скрипт при нажатии паузы не останавливается, то можно сделать так:
Открываешь в этом же DevTools вкладку Elements, правой кнопкой мыши на, например, элементе body, выбираешь Brake on->Subtree modifications
И тогда код аналогично остановится при каком-либо изменении кода страницы

Добавить комментарий