Статья: Парсер на РНР - это возможно

$automat=array(

/*

-1 слово готово, пора возвращать

0 начало сканирования

1 получили символ, надо копить пока это символ

2 получили предопределенное слово из одного символа

*/

//состояния 0, 1, 2

"0"=>array( 0, -1, -1),//разделитель

"1"=>array( 2, -1, -1),//слово из одного символа

"2"=>array( 1, 1, -1),//символ

);

$state=0;

$word="";

// Цикл сканирования

while ($this->pos<$this->length) {

// Устанавливаем код подаваемого на вход автомата символа.

if (in_array($this->data[$this->pos],$delimiters))

$instate=0;

elseif (in_array($this->data[$this->pos],$words))

$instate=1;

else

$instate=2;

// Получаем состояние автомата

$state=$automat[$instate][$state];

// Наши действия по состояниям автомата

switch($state) {

case 0: // началосканирования

if ($this->data[$this->pos]=="n") {

К-во Просмотров: 417
Бесплатно скачать Статья: Парсер на РНР - это возможно