игорек87
Новичок
Здравствуйте!Есть задача переименовать константы в php файле, созданные функцией
define().Чтобы найти таковые пользуюсь, ну например этим регулярным выражением
$df=preg_match_all("/define\s*\(\s*[\'|\"](\w*)[\'|\"]\s*,[^,]*,\s*\w*\s*\)/i",$text,$mass_def,PREG_SET_ORDER);
if($df){
foreach($mass_def as $k){
$a[]=$k[1];
}
}
Здесь все понятно.В массиве $a записаны имена констант!
Нужно с помощью регулярных выражений заменить эти названия на другие...
Возьмем к примеру константу
define("TABLE",'test',true);
Проблем не возникает с заменой,но а вот если в скрипте встречается такая строчка:
...
$text='TABLE - Хороший тег в HTML';
...
и тоже произведется замена "TABLE".Естественно заменять в таких ситуациях не нужно!
Как объяснить с помощью регулярного выражения что перед названием должно стоять четное количество кавычек таких (') или таких ("), т.е. заменять только те названия,которые не между кавычками!В сети ничего подобного не нашел!
Всем Спасибо!
define().Чтобы найти таковые пользуюсь, ну например этим регулярным выражением
$df=preg_match_all("/define\s*\(\s*[\'|\"](\w*)[\'|\"]\s*,[^,]*,\s*\w*\s*\)/i",$text,$mass_def,PREG_SET_ORDER);
if($df){
foreach($mass_def as $k){
$a[]=$k[1];
}
}
Здесь все понятно.В массиве $a записаны имена констант!
Нужно с помощью регулярных выражений заменить эти названия на другие...
Возьмем к примеру константу
define("TABLE",'test',true);
Проблем не возникает с заменой,но а вот если в скрипте встречается такая строчка:
...
$text='TABLE - Хороший тег в HTML';
...
и тоже произведется замена "TABLE".Естественно заменять в таких ситуациях не нужно!

