|
|
|
| Здравствуйте,
подскажите пожалуйстa в чем может быть проблема.
Я ввожу текст в форме, сохраняю его в БД, вывожу и пытаюсь выписать, используя в тексте функцию highlight_string, но мне выводиться просто черный текст и кусок кода
$post = htmlspecialchars($result['post']);
$post = str_replace($bb,$tag,$post);
echo $post;
|
но если я просто скопирую этот текст в echo, то он выводит подсвеченный код, например
echo 'Добрый день
'.highlight_string('
$name = 'Dima';
if($name != 'Dima')
echo 'Not';
else
echo 'Yes';
').'
доброй ночи;
|
в чем проблема подскажите пожалуйсто. Заранее большое спасибо! | |
|
|
|
|
|
|
|
для: Dmitry1988
(29.06.2010 в 11:43)
| | Что-то я не увидел, где вы в первом случаи обращаетесь к функции highlight_string? | |
|
|
|
|
|
|
|
для: neadekvat
(29.06.2010 в 11:45)
| | извиняюсь не уточнил. в первом примере переменная post в себе содержит текст из БД, тотже самый как я указал во втором примере | |
|
|
|
|
|
|
|
для: Dmitry1988
(29.06.2010 в 11:43)
| | что значит "используя в тексте" ? | |
|
|
|
|
|
|
|
для: Trianon
(29.06.2010 в 11:49)
| | это как во втором случае, тотже текст, только в первом случае он сохранен в БД и выведен на экран в переменной $post | |
|
|
|
|
|
|
|
для: Dmitry1988
(29.06.2010 в 11:43)
| | highlight_string($post)
попробуй гг | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(29.06.2010 в 13:26)
| | нене так он выведет и весь текст подсвеченный а мне нужно только кусок кода... | |
|
|
|
|
|
|
|
для: Dmitry1988
(29.06.2010 в 13:33)
| | регулярными выражениями ищи где код начинается и где заканчивается. Потом подставляй свою функцию и все | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(29.06.2010 в 13:43)
| | а регулярное выражение найдет все совпадения или только первое? Если например в тексте у меня будет (текст-код-текст-код-текст).
Не знаете почему всетаки так получается, что если просто скопировать текст в echo''; то он подсвечивает только ту часть, которая находиться в функции highlight_string а если передать этотже текст через переменную, то он вообще не воспринимает эту функцию? | |
|
|
|
|
|
|
|
для: Dmitry1988
(29.06.2010 в 14:05)
| | А вам не кажется логичным в тексте выделять код в какой-нибудь bb-код и только то, что находится в этом бб-коде подсвечивать, как это делается здесь.
<?php echo 'Без тэга code не подсвечивает'; ?>
<?php echo 'С тэгом code подсвечивает'; ?>
|
| |
|
|
|
|
|
|
|
для: neadekvat
(29.06.2010 в 14:30)
| | проюовал бб-код [CODE][/CODE] и заменял ее на <code></code>, но он опятьже выводил не подсвеченный код.. | |
|
|
|
|
|
|
|
для: Dmitry1988
(29.06.2010 в 15:32)
| | Смеетесь? Надо использовать бб-код при вводе сообщения, а при выводе надо парсить текст, находящийся в этом бб-коде и пропускать его через функцию. | |
|
|
|
|
|
|
|
для: neadekvat
(29.06.2010 в 17:03)
| | Да это понятно, гдеж еще его использавать:) логику как это делать я уже понял, теперь думаю над тем как пропустить текст, который находится в бб-коде через функцию. | |
|
|
|
|
|
|
|
для: Dmitry1988
(29.06.2010 в 17:14)
| | preg_replace_callback() | |
|
|
|
|
|
|
|
для: neadekvat
(29.06.2010 в 17:54)
| | спасибо большое, не могли бы Вы мне еще помочь с регулярным выражением ничего у меня не получается...(
Извините если пишу не в том форуме, просто тема тут, не хотел создавать новую | |
|
|
|
|
|
|
|
для: Dmitry1988
(29.06.2010 в 21:54)
| | Воспользуйтесь поиском по форуму рег.выражений. Там не раз поднимались темы бб-кодов. | |
|
|
|
|
|
|
|
для: neadekvat
(29.06.2010 в 22:24)
| | Нашел коекакие коды, постараюсь подстроить под себя. Хотел еще спросить т.к. раньше с бб-кодами я ничего не делал, вот смотрю все их делают с помощью рег. выражений, но я их сделал с помощью 2-ух массивов $bb и $tag где ($bb это массив бб-кодов а $tag массив тагов) и с помощью функции str_replace я их заменяю в тексте. Правильно ли это или лучше переделать с помощью рег. выражений? | |
|
|
|
|
|
|
|
для: Dmitry1988
(29.06.2010 в 23:45)
| | 1. Скорее всего, работает ваш код некорректно (см п.3)
2. Если даже работает так, как надо, то там куча ненужных действий ака г..код
3. Вы решили сделать так просто потому, что не знакомы с рег.выражениями, а значит, у вас еще мало знаний и опыта (последнее является причиной п.1)
А лучше таки покажите свой код. | |
|
|
|
|
|
|
|
для: neadekvat
(30.06.2010 в 00:36)
| | нету там ничего своего. | |
|
|
|
|
|
|
|
для: Trianon
(30.06.2010 в 00:37)
| | Ок, "ваш код" можно убрать. | |
|
|
|
|
|
|
|
для: neadekvat
(30.06.2010 в 00:50)
| | Да вы правы с регулярными выражениями я еще не разобрался...
Вот код:
<?php
$bb = array("[CODE]","[/CODE]","[QUOTE]","[/QUOTE]","[COLOR=red]","[/COLOR]","","","","","[U]","[/U]","","");
$tag = array("<blockquote style='border: 1px solid #4D6D91; background: #F4F4F4;'><code>","</code></blockquote>","<blockquote style='border: 1px solid #4D6D91; background: #F4F4F4;'>","</blockquote>","<font color=red>","</font>","<b>","</b>","<i>","</i>","<u>","</u>","<s>","</s>");
//$result['post'] - текст из ДБ
$post = htmlspecialchars(stripslashes($result['post']));
echo str_replace($bb,$tag,$post);
?>
|
| |
|
|
|
|
|
|
|
для: neadekvat
(30.06.2010 в 00:50)
| | У меня все получилось, сделать все как было написану в этой теме http://softtime.ru/forum/read.php?id_forum=6&id_theme=42454
Спасибо большое за ответы. | |
|
|
|
|
|
|
|
для: Trianon
(30.06.2010 в 00:37)
| | Нет Вы не правы ВЕСЬ код который я пишу, я пишу сам, только то, что я не знаю я ищу в интернете и на форумах. Я ничего просто так бездумно не копирую! | |
|
|
|
|
|
|
|
для: Dmitry1988
(30.06.2010 в 01:14)
| | Я был бы сильно рад, окажись неправым.
Но в таком разе объяснить, как можно перепутать название функции, стоящее одним из операндов выражения и название функции как часть текста литеральной строки языка, я решительно не берусь | |
|
|
|
|
|
|
|
для: Trianon
(30.06.2010 в 02:08)
| | Да признаюсь, писал я полную ерунду я это уже понял, но писал все таки я сам, т.к. такой бред врятли найдется в интернете. | |
|
|
|