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

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"; //так тоже не работает
подскажите где я ошибаюся
 

kolyazdv

Новичок
Beavis, спасиба!

такой патерн заработал :)

$search = "/(<\?)(?!(php)|(xml))/si";
 

SiMM

Новичок
> столкнулся с проблемой коротких тегов. На сервере эта опция запрещена
Что мешает прописать её в .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
 

kolyazdv

Новичок
Да я тоже так подумал

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

но это разрешается не на всех серверах
 

john.brown

просто кулибин
SiMM
Если пхп установлен как модуль апача, то да. Но если как цги, то плевать ему на .htaccess.
 

DiMA

php.spb.ru
Команда форума
надо просто сменить ублюдский хостинг, который ограничивает программера в несущественных опциях пхп
 
Сверху