Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: ХорОним данные в файлах.
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » ХорОним данные в файлах.

Страниц (1): [1]
 

1. Джур - 23 Апреля, 2007 - 05:22:51 - перейти к сообщению
Приветствую!
Тут такая проблемма... Недовольство, огорчение Вообщем понадобилось хранить данные не в базе а в файлах, для чего накидал примерно такой классец:
PHP:
скопировать код в буфер обмена
  1. class ar_file{
  2.    var $db;
  3.         function put($name,$ar){
  4.    $name.=".xml";
  5.    $t="<?PHP n";
  6.                 foreach($ar as $k=>$v){
  7.         if(is_array($v)){
  8.                 foreach($v as $k2=>$v2){
  9.                         if(is_array($v2)){
  10.                         foreach($v2 as $k3=>$v3){
  11.                                         if(is_array($v3)){
  12.                         echo "error deep 3";exit;
  13.                                 }else{
  14.                                         $t.="$q['".$k."']['".$k2."']['".$k3."']='".addslashes($v3)."';";
  15.                                 }
  16.                                 }
  17.                    }else{
  18.                         $t.="$q['".$k."']['".$k2."']='".addslashes($v2)."';";
  19.                    }
  20.                 }
  21.         }else{
  22.                 $t.="$q['".$k."']='".addslashes($v)."';";
  23.         }
  24.      }
  25.      $f=fopen($this->db.$name,"w");
  26.      flock($f,2);
  27.      fwrite($f,$t);
  28.      flock($f,3);
  29.      fclose($f);
  30.      @chmod($this->db.$name,0666);
  31.   }
  32.   function get($name){
  33.   $name.=".xml";
  34.   $q=array();
  35.                 if(!file_exists($this->db.$name)){
  36.         $f=fopen($this->db.$name,"w");
  37.         flock($f,2);
  38.         fwrite($f,"<?PHP ");
  39.         flock($f,3);
  40.         fclose($f);
  41.         }else{
  42.         @include($this->db.$name);
  43.         return $q;
  44.      }
  45.   }
  46. }

Идея его в том, что берется массив с нужной инфой и превращается в РНР код. и ложится в папочку с расширением .xml. Может кто-нибуть подсказать способ сохранения массивов, более быстрый и безопасный?
2. valenok - 23 Апреля, 2007 - 06:25:28 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $file_name = 'file.txt';
  4. $array = Array ('val','foo','bar'=>Array('foo1','foo2'=>Array('smth','asd')));
  5.  
  6. // Creating a dump
  7. $f = fopen($file_name,'w+');
  8. fputs($f,serialize($arr));
  9. fclose($f);
  10.  
  11. //Restoring dump
  12. $array2 = unserialize(file_get_contents($file_name));
  13.  
3. Джур - 28 Апреля, 2007 - 09:55:47 - перейти к сообщению
Спасибо... Сильно упрощает жизнь. Теперь можно вообще забыть про ограничения на массивы. Подмигивание

 

Powered by ExBB FM 1.0 RC1