| |
|
|
| | Вынимаю данные из ББ-тегов
preg_match_all("|\[code\]([^\[]*)\[\/code\]|isU", $theme, $oute);
foreach($oute[1] as $val)
{
$theme = str_replace('[code]','',$theme);
$theme = str_replace('[\/code]','',$theme);
$theme = str_replace($val,
'<table class="txt_tab" width="80%" align="center" boder="0" bgcolor="#ACACAC">
<tr valign="top"><td>'.highlight_string("$val").'</td>
</tr></table>', $theme);
}
|
только, чего-то у меня вывод инфы не правильный | |
| |
|
|
| |
|
|
| |
для: Lelik
(13.08.2006 в 21:10)
| | | попробуйте регу:
preg_match_all("|\[code\](.+?)\[\/code\]|is", $theme, $oute); | |
| |
|
|
| |
|
|
| |
для: BAHO
(13.08.2006 в 21:43)
| | | не та рега не пркатила.
А вообще вывод инфы такой. На простое РНР выражение
<?php
echo "Hello world!";
?>
|
выводит такое
<?php
echo "Hello World!";
?>
1
<?php
echo "Hello World!";
?>
|
Причем там где заменены угловые скобки и кавычки - код с подсветкой, но все это без серого фона таблицы, как должно быть | |
| |
|
|
| |
|
|
| |
для: Lelik
(13.08.2006 в 23:06)
| | | а так:
preg_match_all("|\[code\]([^\[]*)\[\/code\]|isU", $theme, $oute);
foreach($oute[1] as $val)
{
$val= highlight_string($val);
$theme = str_replace('[code]','',$theme);
$theme = str_replace('[\/code]','',$theme);
$theme = str_replace($val,
'<table class="txt_tab" width="80%" align="center" boder="0" bgcolor="#ACACAC">
<tr valign="top"><td>'.$val.'</td>
</tr></table>', $theme);
}
|
| |
| |
|
|
| |
|
|
| |
для: BAHO
(13.08.2006 в 23:20)
| | | не так тоже не катит - я проверял и не один раз :( | |
| |
|
|
| |
|
|
| |
для: Lelik
(13.08.2006 в 23:24)
| | | а может где то перед этим htmspecialchars прошёлся? | |
| |
|
|
| |
|
|
| |
для: BAHO
(14.08.2006 в 01:22)
| | | ага | |
| |
|
|
| |
|
|
| |
для: Lelik
(14.08.2006 в 01:22)
| | | а с испоьзованием htmlsprcialchars нельзя сделать? | |
| |
|
|
| |
|
|
| |
для: Lelik
(14.08.2006 в 01:36)
| | | Применил такой код
<?php
preg_match_all("|\[code\](.+?)\[\/code\]|is", $theme, $oute);
foreach($oute[1] as $val)
{
$theme = str_replace('[code]','',$theme);
$theme = str_replace('[\/code]','',$theme);
$val= stripslashes($val);
if(!strpos($val,"<?") && substr($val,0,2)!="<?")
{
$val="<?php\n".trim($val)."\n?>";
}
$val = trim($val);
$theme = str_replace($val,
'<table class="txt_tab" width="80%" align="center" boder="0" bgcolor="#ACACAC">
<tr valign="top"><td>'.highlight_string($val, true).'</td>
</tr></table>', $theme);
}
?>
|
выводится только строка записанная меж тего код без подсветки и без фона таблицы | |
| |
|
|
| |
|
|
| |
для: Lelik
(14.08.2006 в 19:08)
| | | Люди, что никто не поможет?... | |
| |
|
|
| |
|
|
| |
для: Lelik
(15.08.2006 в 01:19)
| | | "Помоги себе сам!": htmlspecialchars делается непосредственно перед выводром в браузер. | |
| |
|
|
| |
|
|
| |
для: Trianon
(15.08.2006 в 09:31)
| | | но ведь я в предыдущем примере привел код с этого сайта из статьи о подсветке кода - там вроде анулируется дествие htmlspecialchers. | |
| |
|
|
| |
|
|
| |
для: Lelik
(15.08.2006 в 14:43)
| | | Обычно код вообще не подвергают обработке htmlspecialchers(), а помещают в тэги <pre></pre>, чтобы он выводился как есть. А обрабатывают htmlspecialchers() всё вне кода. | |
| |
|
|
| |
|
|
| |
для: cheops
(16.08.2006 в 12:21)
| | | а как это сделать - не подвергать обработке htmlspecialchers() код(???), - я чет не догоняю. Просто у меня одна функция все ББ теги трансформирует | |
| |
|
|
| |
|
|
| |
для: Lelik
(16.08.2006 в 15:20)
| | | Мы для этого используем следующий код
<?php
$text = "[code]";
$lastocc = 0;
$sndocc = 1;
$result = "";
while($sndocc)
{
$fstocc = strpos($postbody,"[code]",$lastocc);
$sndocc = strpos($postbody,"
| ",$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;
}
else
{
$result .= nl2br(htmlspecialchars(substr($postbody,$lastocc,strlen($postbody)-$lastocc)));
break;
}
}
$postbody = $result;
?>[/code]
но можно использовать и другие средствам, например, регулярные выражения. | |
| |
|
|