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.         echo $tags['type'];
  39.         if($key == $keyName{
  40.             $molranges=$val;
  41.  
  42.             for ($i=0$i<count($molranges)$i+=2{
  43.                 $offset=$molranges[$i]+1;
  44.                 $len=$molranges[$i+1]-$offset;
  45.                 $tdb[]=parseDatabase(array_slice($values,$offset,$len));
  46.             }
  47.         else continue;
  48.  
  49.     }
  50.     return $tdb;
  51. }
  52.  
  53. /**
  54.  * Преобразование UTF в Windows-1251
  55.  * @param string $s строка
  56.  * @return string
  57.  */
  58. function utf8_win1251($s){
  59. $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"=>"Я"));
  60. return $s;
  61. }
  62.  
  63. /**
  64.  * Парсинг XML в массив
  65.  */
  66. function parseDatabase($mvalues{
  67.     for($i=0;$i<count($mvalues)$i++)
  68.         $mol[$mvalues[$i]["tag"]]=utf8_win1251($mvalues[$i]["value"]);
  69.  
  70.     $db=new XMLparser($mol);
  71.     $array=$db->ar;
  72.     return $array;
  73. }
  74. ?>

Documentation generated on Mon, 25 Jun 2012 15:09:53 +0400 by phpDocumentor 1.4.3