Возникла такая проблема, например кода в сообщении пишу [соdе]РНР КОД[/соdе] , то подсветка кода работает норма. Но когда жму Редактировать сообщение, то вместо [соdе]РНР код[/соdе] вылетает html коды типа <fоnt соlоr="">текст</fоnt> и т.д.
Решил покапаться в этох функции и нашел этот код:
$str = preg_replace_callback('#\[code\](.*?)\[/code\]#siu' , 'highlight_str', $str);
где highlight_str это функция преобразования подсветки.
Пробывал в обратном так:
$str = preg_replace('#highlight_str#su' , '[code]\1[/code]', $str);
и так:
$str = preg_replace('#((highlight_str).*?)#su' , '[code]\1[/code]', $str);
и так:
$str = preg_replace('#(highlight_str.*?)#su' , '[code]\1[/code]', $str);
как только не пробывал, и не работает.
Смайлы и вв-коды норма, а рhр код не пашет в обратном порядке.
Пожалуйста помогите. В гугле искал такую тему, но не нашел.
Спустя 1 минута, 46 секунд (28.11.2011 - 17:37) Игорь_Vasinsky написал(а):
подставляй в паттерн то значение - которое и есть html теги
Спустя 4 минуты, 28 секунд (28.11.2011 - 17:42) Dуес написал(а):
При редактировании сообщения вот такая шняга:
<font class="code">Код:
<font color="#000000">1</font> <code><span style="color: #000000"><span style="color: #0000BB"><?php
<font color="#000000">2</font> </span><span style="color: #007700">echo</span><span style="color: #DD0000">'Тест'</span><span style="color: #007700">;
<font color="#000000">3</font> </span><span style="color: #0000BB">?></span></span></code></font>
<font class="code">Код:
<font color="#000000">1</font> <code><span style="color: #000000"><span style="color: #0000BB"><?php
<font color="#000000">2</font> </span><span style="color: #007700">echo</span><span style="color: #DD0000">'Тест'</span><span style="color: #007700">;
<font color="#000000">3</font> </span><span style="color: #0000BB">?></span></span></code></font>
Спустя 2 минуты, 12 секунд (28.11.2011 - 17:44) Dуес написал(а):
А должно быть так:
[соdе]<?рhр
eсhо'Тест';
?>
[/соdе]
Как это осуществить?
[соdе]<?рhр
eсhо'Тест';
?>
[/соdе]
Как это осуществить?
Спустя 1 день, 23 часа, 10 минут, 5 секунд (30.11.2011 - 16:54) Dуес написал(а):
Тишина.
Спустя 39 минут, 59 секунд (30.11.2011 - 17:34) Invis1ble написал(а):
Dуес
Цитата |
Как это осуществить? |
обратным преобразованием из html в bb
Спустя 26 минут, 48 секунд (30.11.2011 - 18:01) Guest написал(а):
Вы в базу не должны записывать преобразованные данные. Храниться все должно так: [bb]текст[/bb]. А уже непосредственно при выводе на экран, если это не форма, преобразовываете. Каждый раз. В случае с формой, просто подставляете то, что лежит в базе. И все будет ок.
Спустя 3 часа, 19 минут, 4 секунды (30.11.2011 - 21:20) Dуес написал(а):
Здесь не ВВ коды, а подсветка рhр кода, и тут сложнее.
Спустя 12 минут, 49 секунд (30.11.2011 - 21:33) Игорь_Vasinsky написал(а):
а какая разница?
Спустя 4 минуты, 15 секунд (30.11.2011 - 21:37) Игорь_Vasinsky написал(а):
юзер пишет так
[ b ]текст[ /b ]
В БД ты пишешь так (str_replace или preg_replace)
<span class="bb_b">текст</span>
вытаскивая на страничку - оставляешь в таком виде
а если обратно в textarea то
в паттерне может накасарезил, но смысл такой
и на классы обрати внимание - так ты не спутаешься
[ b ]текст[ /b ]
В БД ты пишешь так (str_replace или preg_replace)
<span class="bb_b">текст</span>
вытаскивая на страничку - оставляешь в таком виде
а если обратно в textarea то
preg_replace("#(<span class=\"bb_b\">.*</span>)#iusU", "[ b ]\\1[ /b ]", $text)
в паттерне может накасарезил, но смысл такой
и на классы обрати внимание - так ты не спутаешься
Спустя 42 минуты, 28 секунд (30.11.2011 - 22:19) Invis1ble написал(а):
Dуес
Guest правильно сказал - храни в БД непреобразованные bb-теги.
Guest правильно сказал - храни в БД непреобразованные bb-теги.
Спустя 34 минуты, 54 секунды (30.11.2011 - 22:54) Winston написал(а):
Guest, Invis1ble верно говорят, в БД нужно писать не преобразованные теги, а на выходе преобразовывать, а если в базу сразу писать преобразованные... вы же потом геммора не оберетесь.
Спустя 15 минут, 30 секунд (30.11.2011 - 23:10) Игорь_Vasinsky написал(а):
т.е. каждый раз выводя сообщения нужно производить замену bb тегов на html теги
на за то если юзер захочет один раз в год отредактировать свой пост - вуаля - из бд прямо в форму
на за то если юзер захочет один раз в год отредактировать свой пост - вуаля - из бд прямо в форму
Спустя 4 минуты, 32 секунды (30.11.2011 - 23:14) inpost написал(а):
Ты должен знать, как подсветка устроена.
Что тут сложного, есть у тебя <span class="light">Text</span> , тебе надо через регулярку как раз передавать этот спан, текст и закрытие спана <span>(.*)</span> - вот такой вид примерно, а возвращать только //1, что в скобках. Хотя это уже выше сказали.
И как дополнение, подсветка нужна ТОЛЬКО в том случае, если человек пользуется поиском, и именно в этот момент НАЙДЕННОЕ слово подсвечивать на странице, вот что значит подсветка, а ты неправильно её понимаешь в принципе.
Что тут сложного, есть у тебя <span class="light">Text</span> , тебе надо через регулярку как раз передавать этот спан, текст и закрытие спана <span>(.*)</span> - вот такой вид примерно, а возвращать только //1, что в скобках. Хотя это уже выше сказали.
И как дополнение, подсветка нужна ТОЛЬКО в том случае, если человек пользуется поиском, и именно в этот момент НАЙДЕННОЕ слово подсвечивать на странице, вот что значит подсветка, а ты неправильно её понимаешь в принципе.
Спустя 11 часов, 20 минут, 51 секунда (1.12.2011 - 10:35) Dуес написал(а):
Двиг на файлах. Надо чтоб вся подсветка в обратном была.
Спустя 10 дней, 6 часов, 45 минут, 39 секунд (11.12.2011 - 17:21) Гость написал(а):
Тишина