phpDocumentor PHPShopCore
[ class tree: PHPShopCore ] [ all elements ]

Source for file xml.class.php

Documentation is available at xml.class.php

  1. <?php
  2. /**
  3.  * Содержание объекта
  4.  */
  5. class XMLparser {
  6.     var $ar;
  7.     function XMLparser($aa{
  8.         foreach ($aa as $k=>$v{
  9.             $this->$k=$aa[$k];
  10.             $this->ar[$k$this->$k;
  11.         }
  12.     }
  13. }
  14.  
  15. /**
  16.  * XML обработчик
  17.  * @param string $filename адрес файла xml
  18.  * @param string $keyName параметр xml для парсинга
  19.  * @param bool $file xml читается из файла [true] или содержимого $filename при значении [false]
  20.  * @return array
  21.  */
  22. function readDatabase($filename,$keyName,$file=true{
  23.     global $PHPShopSystem;
  24.  
  25.     if(!$PHPShopSystem{
  26.         $PHPShopSystem new PHPShopSystem();
  27.     }
  28.  
  29.     if($file$data=implode("",file($filename));
  30.     else $data=$filename;
  31.     $parser=xml_parser_create($PHPShopSystem->getSerilizeParam('admoption.xmlencode'));
  32.     xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
  33.     xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
  34.     xml_parse_into_struct($parser,$data,$values,$tags);
  35.     xml_parser_free($parser);
  36.  
  37.     foreach ($tags as $key=>$val{
  38.         if($key == $keyName{
  39.             $molranges=$val;
  40.  
  41.             for ($i=0$i<count($molranges)$i+=2{
  42.                 $offset=$molranges[$i]+1;
  43.                 $len=$molranges[$i+1]-$offset;
  44.                 $tdb[]=parseDatabase(array_slice($values,$offset,$len));
  45.             }
  46.         else continue;
  47.  
  48.     }
  49.     return $tdb;
  50. }
  51.  
  52. /**
  53.  * Преобразование UTF в Windows-1251
  54.  * @param string $s строка
  55.  * @return string
  56.  */
  57. function utf8_win1251($s){
  58. $sstrtr ($sarray ("\xD0\xB0"=>"а""\xD0\x90"=>"А""\xD0\xB1"=>"б""\xD0\x91"=>"Б""\xD0\xB2"=>"в""\xD0\x92"=>"В""\xD0\xB3"=>"г""\xD0\x93"=>"Г""\xD0\xB4"=>"д""\xD0\x94"=>"Д""\xD0\xB5"=>"е""\xD0\x95"=>"Е""\xD1\x91"=>"ё""\xD0\x81"=>"Ё""\xD0\xB6"=>"ж""\xD0\x96"=>"Ж""\xD0\xB7"=>"з""\xD0\x97"=>"З""\xD0\xB8"=>"и""\xD0\x98"=>"И""\xD0\xB9"=>"й""\xD0\x99"=>"Й""\xD0\xBA"=>"к""\xD0\x9A"=>"К""\xD0\xBB"=>"л""\xD0\x9B"=>"Л""\xD0\xBC"=>"м""\xD0\x9C"=>"М""\xD0\xBD"=>"н""\xD0\x9D"=>"Н""\xD0\xBE"=>"о""\xD0\x9E"=>"О""\xD0\xBF"=>"п""\xD0\x9F"=>"П""\xD1\x80"=>"р""\xD0\xA0"=>"Р""\xD1\x81"=>"с""\xD0\xA1"=>"С""\xD1\x82"=>"т""\xD0\xA2"=>"Т""\xD1\x83"=>"у""\xD0\xA3"=>"У""\xD1\x84"=>"ф""\xD0\xA4"=>"Ф""\xD1\x85"=>"х""\xD0\xA5"=>"Х""\xD1\x86"=>"ц""\xD0\xA6"=>"Ц""\xD1\x87"=>"ч""\xD0\xA7"=>"Ч""\xD1\x88"=>"ш""\xD0\xA8"=>"Ш""\xD1\x89"=>"щ""\xD0\xA9"=>"Щ""\xD1\x8A"=>"ъ""\xD0\xAA"=>"Ъ""\xD1\x8B"=>"ы""\xD0\xAB"=>"Ы""\xD1\x8C"=>"ь""\xD0\xAC"=>"Ь""\xD1\x8D"=>"э""\xD0\xAD"=>"Э""\xD1\x8E"=>"ю""\xD0\xAE"=>"Ю""\xD1\x8F"=>"я""\xD0\xAF"=>"Я"));
  59. return $s;
  60. }
  61.  
  62. /**
  63.  * Парсинг XML в массив
  64.  */
  65. function parseDatabase($mvalues{
  66.     for($i=0;$i<count($mvalues)$i++)
  67.         $mol[$mvalues[$i]["tag"]]=utf8_win1251($mvalues[$i]["value"]);
  68.  
  69.     $db=new XMLparser($mol);
  70.     $array=$db->ar;
  71.     return $array;
  72. }
  73. ?>

Documentation generated on Thu, 17 Feb 2011 15:58:55 +0300 by phpDocumentor 1.4.3