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


Автор: grytskiv 3.5.2008, 20:37
Кто нибуть может написать алгоритм+регулярное выражение которое будет находить переменные в коде PHP?

Справка:
Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
Note: For our purposes here, a letter is a-z, A-Z, and the ASCII characters from 127 through 255 (0x7f-0xff).
Note: $this is a special variable that can't be assigned.

 ! 
skyboy
ТАК раскручивать ресурс нехорошо

Этот код нужен для редактора PHP написанного на PHP (GTK).

Автор: skyboy 3.5.2008, 21:20
Непонятно. ты привел выписку из мана, где указана нужная тебе регулярка. 
или это как у спамеров - "осмысленная обертка", чтоб антиспам не отсеял?

Автор: Feldmarschall 3.5.2008, 21:26
skyboy, для поиска этого недостаточно.
Как минимум, есть два случая, когда подходящая под паттерн строка (с долларом вначале, разумеется), не будет переменной с точки зрения скрипта: 
Код

'$var'
и
"\$var"


grytskiv, РНР ищет переменные не регуляыркой, а посимвольным перебором. А тебе переменная зачем?

Автор: skyboy 3.5.2008, 23:44
Feldmarschall, ну, учитывая 
Цитата(grytskiv @  3.5.2008,  19:37 Найти цитируемый пост)
Этот код нужен для редактора PHP написанного на PHP (GTK).
, речь, видимо, о подсветке синтаксиса.

Автор: Feldmarschall 4.5.2008, 07:51
Для подсветки я бы не писал свое, а пользовался внешними библиотеками, таким, как colorer.

Автор: sTa1kEr 15.5.2008, 19:35
grytskiv, для парсинга PHP скриптов хорошей идеей будет воспользоватся средствами самого Zend Engine. Почитайте http://php.net/tokenizer

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