Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить какая функция выполняется 
V
    Опции темы
Oyy
Дата 13.9.2009, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.7.2008

Репутация: нет
Всего: нет



Возникла такая проблема. Есть CMS, ее нужно доработать. Как узнать в каких файлах находятся функции которые выполняют вычисления? Т.е. последовательность запросов к php интерпретатору что ли. Вроде понятно описал. Файлов много, поэтому echo или print проблему не решает.

P.S. Прошу прощения если подобная тема на форуме поднималась. Даже не знаю в каком направлении копать

Спасибо!
PM MAIL   Вверх
Simpliest
Дата 13.9.2009, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Код

debug_backtrace();



--------------------
user posted image
PM   Вверх
skyboy
Дата 14.9.2009, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Oyy @  13.9.2009,  21:01 Найти цитируемый пост)
Как узнать в каких файлах находятся функции которые выполняют вычисления?

какие именно вычисления?
Цитата(Oyy @  13.9.2009,  21:01 Найти цитируемый пост)
Т.е. последовательность запросов к php интерпретатору что ли. 

то есть, надо найти все файлы с PHP-кодом? тогда ищи файлы с текстом "<?" - это необходимые(но не достаточный) признак наличия PHP-кода в текстовом файле.
вот только я думаю, что таких 
Цитата(Oyy @  13.9.2009,  21:01 Найти цитируемый пост)
Файлов много


PM MAIL   Вверх
Oyy
Дата 14.9.2009, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.7.2008

Репутация: нет
Всего: нет



Напишу немножко по-другому

Есть функция которая что-то рассчитывает. Мне нужно ее модифицировать.  Я понятия не имею  где она находится, могу заставить ее сработать но как она называется и тем более где она зарыта непонятно.  Как это выяснить? 


PM MAIL   Вверх
Simpliest
Дата 14.9.2009, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Действительность оказалась еще жестче :(

Вариантов масса.
1. Пользоваться IDE (например Eclipse PDT). Тогда в проекте двойным кликом по функции ты перейдешь к ее определению
2. Пользоваться файлменеджерами типа Far и искать файлы на наличие подстроки function function_name()
3. Пользоваться утилитой find для тех же целей что и п.2.




--------------------
user posted image
PM   Вверх
NLspieler
Дата 14.9.2009, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



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

1. Смотришь, как объявляются функции, обычно так: 
function func_name ($param, $param2)

Формируешь строку:

Код

$function_name = 'func_name' ; //Название функции для поиска. 
$serch = 'function ' . $function_name ; //Текст который будем искать в файлах с кодом



2. Получаешь список всех файлов с php кодом. И помещаешь их адреса в массив.

3. Циклом перебираешь весь этот массив. 
Загружаешь каждый файл в переменную
Код

$content = file_get_contents ($file_adresse) ;

После чего проверяешь на присутствии объявления функции,

Код

strpos ($content , $serch) ;


Если функция возвращает значение, отличное от FALSE, завершаешь цикл и распечатываешь на экран адрес соответсвующего файла.



PM MAIL   Вверх
Oyy
Дата 14.9.2009, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.7.2008

Репутация: нет
Всего: нет



Спасибо за ответы но немного не то  smile 

Есть куча чужого кода.  Я понятия не имею какие действия CMSки  какая функция обрабатывает.  Нужно найти именно название этих функций.  Попробую на примере.

1. Есть платный сервис по размещению объявлений на сайте.
2.  Стандартно задается абонплата за пользование сервисом. нипример 1 месяц. 
3.Нужно добавить максимальное количество объявлений  которое может добавить пользователь не больше 5 например.

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

Найти саму функцию по поиску не проблема. Проблема состоит в том как узнать какую функцию искать?
PM MAIL   Вверх
Simpliest
Дата 14.9.2009, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Идем в google и ищем

xdebug
zend debugger

рекомендую Eclipse PDT как бесплатный IDE с отладчиком.

Загружаем в него проект, и в режиме дебага начинаем пользоваться сайтом. По шагам и смотрим, где? что? когда? вызывается.

Добавлено через 58 секунд
P.S. Как вы, правда, собираетесь дорабатывать код не зная о том что такое  debug для меня полная загадка.


--------------------
user posted image
PM   Вверх
Oyy
Дата 14.9.2009, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.7.2008

Репутация: нет
Всего: нет



Да там не много. Раньше пользовался выводами в файл или принтами.  Просто хочется быстрее делать подобное. 

Спасибо за подсказку  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.