Записи. И так какое-то подобие html парсера. Часть первая, подготовка.
16 лет назадМетки: html, php, regular, подобие Parser
Для начала, нам неплохо было бы и подготовить парсер к обработке.
if (!class_exists('HtmlParser')){
class HtmlParser{
var $allow;
var $simpletag;
var $AllowProtocols;
var $ReplaceTagsFrom, $ReplaceTagsTo;
function HtmlParser(){
$this->ClearAllow();
$this->simpletag=array('img','br','hr','input','param');
$this->AllowProtocols=array('http','ftp','skype','about','https');
$this->ReplaceTagsFrom=array();
$this->ReplaceTagsTo=array();
$this->AddReplace('/\<(\/?)b(\s[^\>]*?)\>/i','<$1strong$2>');
$this->AddReplace('/\/i','<span class="lj_user"><a href="http://www.livejournal.com/userinfo.bml?user=$2" title="$2 profile"><img src="http://stat.livejournal.com/img/userinfo.gif" border="0" alt="[info]" /></a><a href="http://$2.livejournal.com/">$2</a></span>');
$this->InitAllow();
}
}
Это пока только заготовка, в неё нету даже реализации всех функций кроме конструктора. Но в планах:
- Нормальная обработка одиночных тегов.
- Обработка закрытых двойных закрытых тегов.
- Допуск разных протоколов в ссылках.
- Автозамена некоторых тегов, для отображения на экране.