Часто бывает нужно разместить в статье, странице или еще где то, какой то хтмл, пхп или другой код.
Но это сделать невозможно, так как все теги будут отображаться как код, а не как текст.
Можно сделать его в виде символов (> и т.д.) но при редактировании он станет обычным опять.
Можно сделать функции замен символов.
Но проще всего, это использовать функцию highlight_string.
1. Создаем файл highlight.php со следующим кодом:
<?php
function my_callback($matches) {
$numlines = max(substr_count($matches[1], "
"), substr_count($matches[1], "<br />")) + 1;
$numlines = $numlines * 18;
if ($numlines > 600) // подсчет высоты, при превышении которой следует поместить код в прокрутку.
{
$numlines = "height:600px;";
} else {
$numlines = "";
}
$matches[1] = highlight_string($matches[1], true);
$matches[1] = eregi_replace(" "," ",$matches[1]); //Заменяем в получившемся коде пробелы
$matches[1] = "<div style="margin:0px; padding:6px; border:0px inset; $numlines overflow:auto">$matches[1]</div>"; //Оформляем код
return $matches[1];
}
function highlight ($data) {
$data = preg_replace_callback("![COD](.*?)[/COD]!si", "my_callback", $data);
return $data;
}
?>
2. Теперь лишь остается подключить этот файл и провести переменную через функцию highlight.
<?php
//коды, коды, коды
//запрашиваем переменную $text из базы данных
include("highlight.php"); // подключаем скрипт подсветки
$text = highlight($text); //пропускаем переменную через функцию подсветки
echo "$text";//выводим на экран
//коды, коды, коды
?>
3. Теперь, если требуется написать код, его нужно лишь заключить между тегами: [COD] [/COD]
Важно: Если у вас стоят какие то запреты на хтмл или пхп коды (методом POST), или фильтры, которые вырезают их, то результата не будет. Функция stripslashes, если используется при выводе информации, также может повредить пхп код, который вы напишите.
Поэтому использовать такой метод добавления кода должен только администратор.