Регулярка замена коротких тегов

kolyazdv

Новичок
Регулярка замена коротких тегов

Доброе утро

столкнулся с проблемой коротких тегов. На сервере эта опция запрещена :(

Скрипт написан в CodeIgniter 'е и очень большой ~9,3мб
тут используется повсюду
1)<?=$str;?> - это аналог <?php echo $str;?>
2)<?if(...)...?>
3)<?xml sdfasd f?>
ну и т д.

написал маленький скриптик, который делает замену тегов

PHP:
<?php
    $search = "<?=";
    $replace = "<?php echo ";
    $new_contents = str_replace($search, $replace, $contents);     

    $search = "/(<\?)(?!(php))/si"; //ищем <? и если следующий текст "Не php" то подставляем php...
    $replace = "$1php $2";
    $new_contents = preg_replace($search, $replace, $new_contents);
?>
но что то не получается исключить xml. Т. е. нужно в патерне добавить исключение что может попадаться "Не php и не xml"
$search = "/(<\?)(?!(php|xml))/si"; - ? // так не работает :(
$search = "/(<\?)(?!(php&xml))/si"; //так тоже не работает
подскажите где я ошибаюся
 
> столкнулся с проблемой коротких тегов. На сервере эта опция запрещена
Что мешает прописать её в .htaccess?
[m]ini.list[/m]
short_open_tag
PHP_INI_ALL Опция может быть установлена где угодно
PHP_INI_PERDIR (>4.0.0,<5.3.0) Опция может быть установлена в php.ini, .htaccess или httpd.conf
 
Да я тоже так подумал

прописать в .htaccess
php_value short_open_tag on

но это разрешается не на всех серверах
 
SiMM
Если пхп установлен как модуль апача, то да. Но если как цги, то плевать ему на .htaccess.
 
надо просто сменить ублюдский хостинг, который ограничивает программера в несущественных опциях пхп
 
Сверху