Мне нужна помощь с PHP-кодом для следующего:
Получите текст между каждым вхождением тегов BBCode [code] и [/ code] в заданной строке, чтобы затем я мог заменить пробелы «символом nbsp».
Короче говоря, я не могу использовать CSS или DOM для этого, мне нужно сделать это на сервере.
# [code] (. *?) [/ code] # кажется, работает только в том случае, если между стартовыми и конечными тегами нет разрывов (или новых строк) …. 🙁
Я думаю, вы ищете что-то вроде этого
<?php preg_match_all("/\[code\](.*?)\[\/code\]/ism", $search, $match);
hover, я бы предложил вам использовать синтаксические анализаторы BBcode вместо
Чтобы заменить все пробелы на
, просто используйте preg_replace_callback
<?php $text = preg_replace_callback("/\[code\](.*?)\[\/code\]/ism", function($match) { return str_replace(" ", " ", $match[1]); }, $search);