Знаю, что обсуждали такую тему, но вроде бы, уже есть технические вмешательства в форум (а значит год прошел). Собственно, нельзя ли в теге [ php ] сделать необязательным наличие <?php ?
Kreker, сегодня, независимо от Вас, испытал те же чувства по поводу [ php]<?php ?>[/php] UPD> думаю стоит оставить как есть
А еще подсветку функций бы... Например, Код (Text): isset( заменять на Код (Text): [url=http://php.net/isset]isset[/url]( Но это так, утопия.
Одно дело, когда вставляешь листинг скрипта, а другое, когда вставляешь 1-2 строчки. И из-за них писать еще две строки <?php ?> =\ А если не напишешь, то смысл тега теряется.
Ввиду возможного использования HTML, всё-таки лучше оставить парсер как есть НО сделать, чтобы при клике в форме ответа на кнопку PHP, вставлялос бы не PHP: [/b] а [b][php]<?php [/b]
Вообще, непонятно, зачем тег PHP: . С таким же успехом можно парсить текст, находящийся в [code] <?php (.*) ?>[/code] , а не [code][php] <?php (.*) ?> [/code] И проблема с новичками, которые не подсвечивают код, решится.
+Sten+ Если там в переешку с HTML типа "HTML ... <?php PHP ?> HTML <? PHP ?> ......" то подсветка летит к чёрту.
для тега Код (Text): сделать с тегом, для тега [php] сразу подствечивать пхп. кому надо - тот такой и оформит.
Делал для своего сайта (он умер, а скрипт остался), то же что и сказал +Sten+ Маленькая регулярка Код (Text): $pattern = '~(<\?(((?>(?R)|(((?!<\?)|\?>)).+)+)+)\?>)~isU'; $text = preg_replace_callback($pattern, create_function('$matches', 'return highlight_string($matches[1], true);'), $text); $text - собсна текст с пхп вложениями =)
Трындец PHP: <?php define("index", true); session_start(); ?> [html]<html> <head> <title>Добавление файлов</title> <meta http-equiv="content-type" content="text/html; charset=windows-1251" />[/html] <?php echo 123; ?> Обратно, правда, нельзя.