Intereting Posts
Как я могу перенаправить ошибку 404 на пользовательскую страницу 404 с помощью Codeigniter? Как я могу получить MAC и IP-адрес подключенного клиента в PHP? Объединить все остальные массивы php Загрузите много файлов на клиентской стороне и сжимайте их, затем загрузите файл сжатия на сервер Как получить последние n элементов в массиве PHP в качестве другого массива? Laravel – Динамические отношения, использующие hasManyThough () и уникальное слияние Доступ к многомерному элементу массива без знающих родительских элементов Форма для представления iframe – как вы можете сбросить форму после загрузки файла? Попытка извлечь 5 символов из столбца при добавлении записи mysql через php Как автоматически преобразовать URL-адрес в гипер ссылку в PHP? Заголовки PHP уже отправлены PHP Stripe получает идентификатор транзакции после успешной покупки Может ли кто-нибудь сказать мне, как получить косвенно связанные классы с помощью Propel ModelCriteria? как установить php amqp в ubuntu PHP PDO Проверка доступности имени пользователя

Рекомендации по реализации простого регулярного выражения (для синтаксического анализа bbcode / geshi)

Я сделал программное обеспечение для личных заметок на PHP, поэтому я могу хранить и упорядочивать свои заметки и хотел, чтобы их написал простой формат.

Я сделал это в Markdown, но обнаружил, что это немного запутанно, и не было простого подсветки синтаксиса, поэтому я сделал bbcode раньше и хотел реализовать это.

Теперь для GeSHi, который я действительно хочу реализовать (синтаксический маркер), для этого требуется самый простой код:

$geshi = new GeSHi($sourcecode, $language); $geshi->parse_code(); 

Теперь это легкая часть, но я хочу, чтобы мой bbcode вызывал ее.

Мое текущее регулярное выражение для соответствия составленному [синтаксису = cpp] [/ syntax] bbcode следующее:

 preg_replace('#\[syntax=(.*?)\](.*?)\[/syntax\]#si' , 'geshi(\\2,\\1)????', text); 

Вы заметите, что я захватываю язык и контент, как бы я мог подключить его к коде GeSHi?

preg_replace, похоже, просто может заменить его строкой, а не «выражением», я не уверен, как использовать эти две строки кода для GeSHi там с захваченными данными.

Я действительно в восторге от этого проекта и хочу преодолеть это.