parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Если пишите сайт на нескольких языках

Demоn 07.03.2003 12:13 / 07.03.2003 12:19

Я написал php класс для совместимости с таблицами Parser если кому надо берите, юзайте, тестируйте:)

Скоро напишу функции UPDATE, DELETE и APPEND
<?php

class Parser_Tables {

	function Save($file="",$table=""){
		$fp = fopen ($file,"w");
		while (list($k,$v)=each($table)){
			for ($i=1; $i<=count($table[$k]); $i++) {
				list($key,$value)=each($table[$k]);
				if ($i < count($table[$k])) {
					fputs($fp,$value."\t");
				} else {
					fputs($fp,$value);
				}
			}
			fputs($fp,"\r\n");
		}
		fclose($fp);
	}

	function Load($file=""){
		$table = array();
		$fp = fopen ($file,"r");

		while (!feof ($fp)) {
			$line = fgets($fp,filesize($file));
			if ($line!=""){
				$str = split("\t",$line);
				array_push($table,$str);
			}
		}
		return $table;
		fclose($fp);
	}

	function Select($table="",$command=""){

		$arr = split(" ",$command);

		for ($i=1; $i<=count($table[0]); $i++) {
			list($key,$value)=each($table[0]);
			$value = str_replace("\r\n","",$value);
				reset ($arr);
				while (list($key_arr,$value_arr)=each($arr)){
					if ($value_arr==$value) {
						$command = (str_replace($value_arr,"\$table[\$k]['".$key."']",$command));
					}
				}
		}

		$command = "if (".$command.") {} else {unset(\$new_arr[\$k]);}";
		$new_arr = $table;
		next($table);

		while (list($k,$v)=each($table)) {
			eval($command);
		}

		return $new_arr;
	}

}













$table = array(
	'0' => array("name","title","age"),
	'1' => array("Вова","1","21"),
	'2' => array("Леша","1","22"),
	'3' => array("Леша","1","23"),
	'4' => array("Леша","1","24"),
	'5' => array("Леша","1","25")
);

$file = "test_table_php.txt";

$PT = new Parser_Tables;
$PT -> Save($file,$table);
$table = $PT -> Load($file);
print_r($table);

echo "<BR><BR><BR><BR><BR><BR>";

# Аргументы необходимо разделять пробелами.
$table = $PT -> Select($table,"age != 23 && name == 'Леша'");
print_r($table);

?>
Да. И ещё если есть предложение и пожелания, то я обязательно выслушаю и приму к сведению.