Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Demоn 07.03.2003 12:13 / 07.03.2003 12:19
Я написал php класс для совместимости с таблицами Parser если кому надо берите, юзайте, тестируйте:)<?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); ?>Да. И ещё если есть предложение и пожелания, то я обязательно выслушаю и приму к сведению.