За последние 24 часа нас посетили 17547 программистов и 1314 роботов. Сейчас ищут 1783 программиста ...

Переименовать константы в PHP файле

Тема в разделе "Регулярные выражения", создана пользователем Игорек, 30 ноя 2010.

  1. Игорек

    Игорек Активный пользователь

    С нами с:
    30 ноя 2010
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте!Есть задача переименовать константы в php файле, созданные функцией
    define().Чтобы найти таковые пользуюсь, ну например этим регулярным выражением

    PHP:
    1.  
    2.     $df=preg_match_all("/define\s*\(\s*[\'|\"](\w*)[\'|\"]\s*,[^,]*,\s*\w*\s*\)/i",$text,$mass_def,PREG_SET_ORDER);
    3.     if($df){                                                                   
    4.         foreach($mass_def as $k){
    5.             $a[]=$k[1];
    6.         }  
    7.     }
    8.  
    9.  
    Здесь все понятно.В массиве $a записаны имена констант!
    Нужно с помощью регулярных выражений заменить эти названия на другие...
    Возьмем к примеру константу
    PHP:
    1.  
    2. define("TABLE",'test',true);
    3.  
    Проблем не возникает с заменой,но а вот если в скрипте встречается такая строчка:

    PHP:
    1.  
    2. ...
    3. $text='TABLE - Хороший тег в HTML';
    4. ...
    5.  
    и тоже произведется замена "TABLE".Естественно заменять в таких ситуациях не нужно!:(Как объяснить с помощью регулярного выражения что перед названием должно стоять четное количество кавычек таких (') или таких ("), т.е. заменять только те названия,которые не между кавычками!В сети ничего подобного не нашел!:(Всем Спасибо!