Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Найти в коде строку


Автор: Annuta 7.1.2008, 13:48
С праздниками народ! smile 
  Люди натолкните меня на то как сделать такую вещь... 
  Есть у меня файлики header.php и foot.php которые включ во все страницы вверху и внизу соответсвенно. Между ними сами понимаете код php. 
  В этом коде мне надо найти и занести в массив все вызовы функции SFunc('string') и string тож... 
  Как их искать вообще ??? ...  smile 
  я читаю про парсеры, регулярный выражения... но туда ли копаю  smile  ??? 
  Подскажите с помощью чего лучше сделать такой разбор php кода.  Спасибо...  

Автор: flashaa 7.1.2008, 16:19
Непонятна изначальная задача. Допустим, найдешь все эти строки и занесешь в массив. Что ты будешь делать с массивом одинаковых таких вот подстрок?

Можно занести в массив по регулярке:
Код

preg_match_all('/SFunc\(\'string\'\)/', file_get_contents('файл'), $matches);


после этого в $matches будут все подходящие под регулярку строки.

Автор: Annuta 8.1.2008, 10:13
Я хочу внизу каждой стр приделать табличку и выводить там параметр string мне нужно для отладки. Было б оочень удобнО видеть сразу всё именно так. 
А как я узнаю имя загружаемого файла ? Я ж не буду переписывать весь проект и совать это во все файлы... я хочу вписать это или футер или в хедр... 

Автор: flashaa 8.1.2008, 13:10
Цитата(Annuta @  8.1.2008,  10:13 Найти цитируемый пост)
Я хочу внизу каждой стр приделать табличку и выводить там параметр string мне нужно для отладки. Было б оочень удобнО видеть сразу всё именно так. 
А как я узнаю имя загружаемого файла ? Я ж не буду переписывать весь проект и совать это во все файлы... я хочу вписать это или футер или в хедр..

Мде. А при чем здесь массив? Надо было так и писать: задача - отредактировать исходник. Вычленить по регулярке некоторые строки и заменить их на что-то.
В хороших редакторах, например Zend Studio, есть возможность поиска/замены по регулярному выражению.  Указываете  строку поиска, у вас это, если я правильно понимаю SFunc('произвольная строка'), тогда регулярка выглядит так - SFunc\('.*?'\), указываете на что  нужно поменять, и 1-10 секунд и редактор выполнит задачу.
По поводу самой идеи.
Это не отладка, а наоборот  smile
Отладка должна быть _упрощенным_ вариантом правки проекта.
Если надо отладить функцию, можно в отдельном тестовом файле написать ее вызов или даже некоторый контекст ее вызова, разобраться, в чем проблема, и далее поменять в проекте на рабочий вариант. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)