Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подсветка кода
 
 автор: LEM   (24.07.2006 в 14:48)   письмо автору
 
 

Часть скрипта
 $msg = preg_replace( "#\[php\](.+)\[\/php\]# isU" ,"[php]".html_entity_decode("$1")."[/php]", $msg ); $msg = preg_replace( "#\[php\](.+)\[\/php\]#isU" ,highlight_string("$1"),$msg );


Думаю понятно что хочу сделать. Но не работает..

   
 
 автор: Snorri   (24.07.2006 в 15:51)   письмо автору
 
   для: LEM   (24.07.2006 в 14:48)
 

насколько я помню слэши прямые экранируются, если используетс "/шаблон/" при "#шаблон#"
экранировать не надо
еще выдержка из официального руководства
Следующие служебные последовательности, используемые в Perl, не поддерживаются: \l, \u, \L, \U, \E, \Q.
так что может все-таки U убрать?

   
 
 автор: cheops (из кафе)   (24.07.2006 в 15:53)
 
   для: LEM   (24.07.2006 в 14:48)
 

>Думаю понятно что хочу сделать.
На всякий случай объясните :)))

   
 
 автор: LEM   (24.07.2006 в 16:41)   письмо автору
 
   для: LEM   (24.07.2006 в 14:48)
 

Не за место # у меня / просто здесь так написал и U убрал не помогает. /cheops, это будет тег для подсветки кода :))

   
 
 автор: LEM   (24.07.2006 в 17:15)   письмо автору
 
   для: LEM   (24.07.2006 в 14:48)
 

Вот скопировал из файла

$msg=preg_replace("#\[php\](.+)\[/php\]#is","[php]".html_entity_decode("$1")."[/php]",$msg);$msg=preg_replace("#\[php\](.+)\[/php\]#is",highlight_string("$1",true),$msg); 

   
 
 автор: ЯR   (25.07.2006 в 03:32)   письмо автору
 
   для: LEM   (24.07.2006 в 17:15)
 

попробуйте так:

<?php
$msg 
preg_replace("#\[php\](.+)\[/php\]#ie"'highlight_string(html_entity_decode("\\1"), true)'$msg);
?>

   
 
 автор: LEM   (25.07.2006 в 13:21)   письмо автору
 
   для: ЯR   (25.07.2006 в 03:32)
 

Так ошибка синтаксиса.
И вообще как функция может быть в кавычках?!

   
 
 автор: ЯR   (25.07.2006 в 16:37)   письмо автору
 
   для: LEM   (25.07.2006 в 13:21)
 

> Так ошибка синтаксиса.
Где? У меня всё работает. У вас какая версия php? Может это только в PHP 5...
> И вообще как функция может быть в кавычках?!
благодаря модификатору 'e' php интерпритирует второй аргумент, как php-выражение.

   
 
 автор: LEM   (25.07.2006 в 20:06)   письмо автору
 
   для: ЯR   (25.07.2006 в 16:37)
 

php 4.3

   
 
 автор: ЯR   (26.07.2006 в 05:39)   письмо автору
 
   для: LEM   (25.07.2006 в 20:06)
 

Т.е. он у тебя не работает? Ты проверял?
И вообще посмтори как сделано на этом форуме да сделай так же.

   
 
 автор: LEM   (27.07.2006 в 00:08)   письмо автору
 
   для: ЯR   (26.07.2006 в 05:39)
 

Да я разобрался уже. e забыл поставить. Спасибо

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования