html парсер. Часть третья. Разбор текста. 

18 лет назад

Наверное самая большая часть кода и самая важная тут.

	function Parse($text){

$text=preg_replace($this->ReplaceTagsFrom,$this->ReplaceTagsTo,$text);

@preg_match_all('/([^\<]*?)\<(\/?)([^\s]+?)((?:(?:\s+(?:[\w]+?)=("|\')(?:[^\5]*?)(?<!\\\\)\5)*?)(?:\s*)\/?)\>/',$text.'<br />',$textdrop);
$tags=array();
if(count($textdrop[0])==0)
return htmlspecialchars($text);
fo

Читать целиком.

html парсер. Часть вторая, инициализация 

18 лет назад

Продолжив колдовать и создав несколько функций инициализации, мы получаем следующую картину.

function ClearAllow(){
$this->allow=array();
}

function InitAllow(){
$this->SetAllow(array(
'a' => array('href','target','style','class'),
'img' => array('src','border','alt','title','style','class','width','height','align'),
'br' => array('style','clear','class'),
'hr' => array

Читать целиком.

И так какое-то подобие html парсера. Часть первая, подготовка. 

18 лет назад

Для начала, нам неплохо было бы и подготовить парсер к обработке.

 

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

Читать целиком.

Авторизация



Поиск на сайте или перейди на страницу поиска