Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Конвертация из HTML в BB и обратно?

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


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

вопрос
Приветствую!
Имеем 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 - 23 февраля 2018 18:55 -

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

ddoommbbaass
Юзер

ddoommbbaass - 23 февраля 2018 19:15 -

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

finik
Юзер

finik - 23 февраля 2018 19:38 -

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

finik
Юзер

finik - 23 февраля 2018 20:28 -

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

finik
Юзер

finik - 23 февраля 2018 20:49 -

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

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

vitnet
Эксперт

vitnet - 23 февраля 2018 23:32 -


finik
Юзер

finik - 24 февраля 2018 10:05 -

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

и т.д.

vitnet
Эксперт

vitnet - 24 февраля 2018 10:25 -

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

finik
Юзер

finik - 24 февраля 2018 11:44 -

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

finik
Юзер

finik - 24 февраля 2018 11:48 -

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

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

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

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

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх