Deprecated: Array and string offset access syntax with curly braces is deprecated in /var/www/dlefaq/data/www/dle-faq.ru/engine/classes/templates.class.php on line 337 Deprecated: The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence in /var/www/dlefaq/data/www/dle-faq.ru/malinkcode/mainlink.php on line 79 Конвертация из HTML в BB и обратно? :: DLE FAQ

Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы по PHP » Конвертация из HTML в BB и обратно?

Конвертация из HTML в BB и обратно?


     Все вопросы » Общие вопросы по PHP    1397

вопрос
Приветствую!
Имеем html код:
<span id="1"></span>
<span id="2"></span>
<span id="текстовоезначение"></span>


для преобразования в вид:
[nav id="1"]
[nav id="2"]
[nav id="текстовоезначение"]


используем строку:
$txt = preg_replace( "#<span id=\"(.+?)\"></span>#", "[nav id=\"\\1\"]", $txt );


а вот обратно преобразовать из html в bb код, у меня не получилось.

Подскажите решение (готов отблагодарить)

Ответа пока нет


10 комментариев

finik
Юзер

finik - -

в вопросе перепутал местами, проблема преобразования из bb кода в html.

ddoommbbaass
Юзер

ddoommbbaass - -

finik,
тык) да тык)
вроде там есть ответы...))

finik
Юзер

finik - -

если быть точным, то у меня проблема в сохранение значения id:
[nav id=\"(.*?)\"] - в таком виде не работает. метод исключения показал, что загвоздка именно в значение id

finik
Юзер

finik - -

Вопрос решил самостоятельно.

finik
Юзер

finik - -

поспешил я объявить о решении проблемы.
$source = preg_replace( "#\[nav id=\"(.+?)\"\]#is", "<span id=\"\\1\"></span>", $source );

при использовании данного кода в тексте новости выводятся бб коды, если убираю кавычки
\"(.+?)\"
, то при каждом сохранении генерируются все новые и новые кавычки.

vitnet
PHP-developer

finik
Юзер

finik - -

Попробовал. После сохранения новости, ББ коды не конвертируются в html и в тексте выводятся так:
[nav id="1"]
[nav id="2"]

и т.д.

vitnet
PHP-developer

vitnet - -

Значит что-то делаете не так, вот тому пример

finik
Юзер

finik - -

На вашем примере я вижу, что работает, но если вставляю строку в парсер, то не работает. Перепробовал вставлять в if ( $this->allowbbcodes ) { в различные места, но результат прежний.

finik
Юзер

finik - -

Если вставляю строку вида:
$source = preg_replace( "#\\[nav id=\\]#is", "<span id=\"\\1\"></span>", $source );

то есть, убрав:
\"(.+?)\"

то конвертируется, правда без значений id

получается проблема в обработке \"(.+?)\"

Похожие вопросы

наверх