|
|
|
| Вообщем делаю свою CMS и сейчас возник вопрос: а как сделать так чтобы пшп код не читался, а выводился на странице и чтоб он был раскрашен.
Если не трудно дайте кусок кода который будет так делать
ЗЫ: пробывал htnlspecialchars - не получилось ((( | |
|
|
|
|
|
|
|
для: JIEXA
(18.12.2004 в 00:41)
| | Для этого предназначена функция highlight_string()
Формат функции следующий:
mixed highlight_string ( string str [, bool return])
|
str - строка с php-кодом.
Параметр return управляет выводом. Если return равно true, то подсвеченный код возвращается функцией.
<?$code = highlight_string ($str , true);?>
|
Если return=false, то вывод подсвеченного кода в браузер происходит сразу же при вызове функции. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(18.12.2004 в 00:58)
| | Я не ожидал что мне так быстро ответят спасибо, но я немного не то имел ввиду мне бы хотелось чтобы к примеру как у вас в форуме какой нибудь код заключить в code /code (они в квадратных скобках, я не стал писать, а то они не отобразятся) и этот текст форматировался плиз скажите как | |
|
|
|
|
|
|
|
для: JIEXA
(18.12.2004 в 01:02)
| | А также и сделано, как я показал выше.
Только плюс в табличку заносятся. Ну и поиск тегов code идет. Вот код соответсвующего участка форума:
<?
// Обрабатываем теги <code>, </code>
$text = "<code>";
$lastocc = 0;
$sndocc = 1;
$result = "";
while($sndocc)
{
$fstocc = strpos($postbody,"<code>",$lastocc);
$sndocc = strpos($postbody,"</code>",$fstocc);
if(($fstocc>0 && $sndocc>0 && $lastocc>0) || ($fstocc >= 0 && $sndocc>0 && $lastocc == 0))
{
$result .= nl2br(htmlspecialchars(substr($postbody,$lastocc,$fstocc - $lastocc)));
$result .= "<table border=0 ><tr><td class=codeblock>".highlight_string(substr($postbody,$fstocc + 6,$sndocc - $fstocc - 6),true)."</td></tr></table>";
$lastocc = $sndocc + 7;
}
?>
|
Разберетесь?
PS: поскольку code в квадратных скобках не отображаются, то в вышеприведенном коде code в угловых скобках следует заменить на code в квадратных. | |
|
|
|