|
| |
|
|
| |
для: antf
(02.10.2006 в 12:06)
| | | Если интересно - почитайте. http://php.spb.ru/php/regexp.html | |
| |
|
|
| |
|
|
| |
для: antf
(02.10.2006 в 12:06)
| | | В LiteForum используется втроенная в PHP функция подсветки кода highlight_string(). | |
| |
|
|
| |
|
|
| |
для: antf
(02.10.2006 в 12:06)
| | | Функция highlight_string() подсвечивает только тот код, который находится между тегами <?php и ?> (а так же <? и <%). | |
| |
|
|
| |
|
|
| | Здравствуйте.
Вот моя собственная функция подстветки php-кода форума. Правильно ли она составлена?
<?
function forum_highlight_phpcode($post)
{
preg_match_all("#\[php\](.+?)\[/php\]#is", $post, $matches);
if(!empty($matches[1]))
{
$cnt = count($matches[1]);
for($i = 0; $i < $cnt; $i++)
{
$replace = $matches[1][$i];
$replace = str_replace("<br />", "", $matches[1][$i]);
$replace = forum_htmlspecialchars_undo($replace);
$replace = highlight_string($replace, true);
$replace = "<table class='ForPostsCodeTbl' cellpadding='0' cellspacing='0' border='0'>
<tr>
<td class='ForPostsCodeTD'>{$replace}</td>
</tr>
</table>";
$post = str_replace("[php]".$matches[1][$i]."[/php]", $replace, $post);
}
}
return $post;
}
//просто отменяет действие фукнции htmlspecialchars
function forum_htmlspecialchars_undo($str)
{
$str = str_replace("&", "&", $str);
$str = str_replace(""", '"', $str);
$str = str_replace("'", "'", $str);
$str = str_replace("<", "<", $str);
$str = str_replace(">", ">", $str);
return($str);
}
?>
|
Пробовал заимствовать аналогичную функцию из LiteForum (модуль utils/utils.php, функция post_work_up), но не разобрался с ней до конца, быстрее написал свою функцию. У меня один вопрос: правильно ли я расшифровал названия переменных: fstocc (first occasion), scdocc (second occasion), endocc (end occasion). Occasion - вхождение, появление, проявление.
Заранее спасибо. | |
| |
|
|
|