ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


php xml parse 3Á¾ ¼¼Æ®
12³â Àü
<?php

    class Xml
    {
        var $data;
        var $encoding;
        var $arr;
        var $pointer;
        var $index;

        //$path            : ÆÄÀÏ°æ·Î
        //$filename        : ÆÄÀϸí
        //$encoding        : UTF-8
        function xmlInit($filename, $encoding)
        {
            $fp = @fsockopen($filename, 80);

            if (!$fp)
            {
                die("XML : {$filename} À» ¿­¼ö ¾ø½À´Ï´Ù.");
            }
            else
            {

                while (!feof($fp)) {
                    $data .= fgets ($fp,128);
                }
                fclose ($fp);

            }

            $this->encoding = $encoding;
            $this->data     = $data;
        }

        function xmlData()
        {
            $this->index = 0;
            $this->pointer[] = &$this->arr;

            $xml_parser = xml_parser_create($this->encoding);

            xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false);
            xml_set_object($xml_parser, &$this);
            xml_set_element_handler($xml_parser, "startElement", "endElement");
            xml_set_character_data_handler($xml_parser, "characterData");

            xml_parse($xml_parser, $this->data, true );
            xml_parser_free($xml_parser);
        }

        function startElement($parser, $tag, $attribute)
        {
            foreach($attribute as $name => $value)
            {
                $value = $this->cleanString($value);
                $object->$name = $value;
            }
            eval( "\$this->pointer[\$this->index]->" . $tag . "[] = \$object;");
            eval( "\$size = sizeof( \$this->pointer[\$this->index]->" . $tag . ");" );
            eval( "\$this->pointer[] = &\$this->pointer[\$this->index]->" . $tag . "[\$size-1];" );

            $this->index++;
        }

        function endElement($parser, $tag)
        {
            array_pop($this->pointer);
            $this->index--;
        }

        function characterData($parser, $data)
        {
            if(trim($data)) $this->pointer[$this->index] = trim($data);
        }

        function cleanString($string)
        {
            return utf8_decode(trim($string));
        }
    }

?>



<?php

    class Xml
    {
      var $tag;
      var $value;
      var $attributes;
      var $next;
    }

    function xml2array($xml_string)
    {
      $Parser = xml_parser_create();
      xml_parser_set_option($Parser, XML_OPTION_CASE_FOLDING, 0);
      xml_parser_set_option($Parser, XML_OPTION_SKIP_WHITE, 1);
      xml_parse_into_struct($Parser, $xml_string, $Xml_Values);
      xml_parser_free($Parser);
      $XmlClass = array();
      $LastObj = array();
      $NowObj = &$XmlClass;

      foreach($Xml_Values as $Xml_Key => $Xml_Value)
      {
          $Index = count($NowObj);
          if($Xml_Value["type"] == "complete")
          {
              $NowObj[$Index] = new Xml;
              $NowObj[$Index]->tag = $Xml_Value["tag"];
              $NowObj[$Index]->value = $Xml_Value["value"];
              $NowObj[$Index]->attributes = $Xml_Value["attributes"];
          }
          elseif($Xml_Value["type"] == "open")
          {
              $NowObj[$Index] = new Xml;
              $NowObj[$Index]->tag = $Xml_Value["tag"];
              $NowObj[$Index]->value = $Xml_Value["value"];
              $NowObj[$Index]->attributes = $Xml_Value["attributes"];
              $NowObj[$Index]->next = array();
              $LastObj[count($LastObj)] = &$NowObj;
              $NowObj = &$NowObj[$Index]->next;
          }
          elseif($Xml_Value["type"] == "close")
          {
              $NowObj = &$LastObj[count($LastObj) - 1];
              unset($LastObj[count($LastObj) - 1]);
          }

      }

      return $XmlClass;
    }

?>




<?php

    class xmlParse
    {
       var $node = array();
       var $xmlParser;
       var $result;
       var $temp;
       var $cou_node;

       function xmlParse($data,$type=1)
       {
          // Unset variable
          unset($this->xmlParser);
          unset($this->result);

          // Create XML Parser
          $this->xmlParser = xml_parser_create();

          // Set handler
          xml_set_object($this->xmlParser,&$this);
          xml_set_element_handler($this->xmlParser, "startElement", "endElement");
          xml_set_character_data_handler($this->xmlParser, "characterData");

          // File
          if($type==2)
          {
             if(!($temp = file($data)))
             {
                die("could not open XML input");
             }
             $fdata = join('',$temp);
             $fdata = str_replace("\n",'',$fdata);
             $fdata = str_replace("\r",'',$fdata);
             $fdata = str_replace("    ",'',$fdata);
             $fdata = trim($fdata);

             if(!xml_parse($this->xmlParser,$fdata)) return 0;

          // Variable
          } elseif($type==1)
          {
             // Parsing
             if(!xml_parse($this->xmlParser,$data)) return 0;
          }
       }

       // Return
       function ret()
       {
          // return Array
          return $this->result;
       }

       /////////////////////////////////////////////////////////////////////////////
       // private
       /////////////////////////////////////////////////////////////////////////////
       function startElement($parser, $name, $attribs)
       {
          // Add node, Clear TEMP
          array_push($this->node, $name);
          unset($this->temp);

          // Count nodes
          $count = count($this->node);
          $this->{'cou_'.$count.'_'.$this->node[$count-1]}++;

          // Create String What is for Eval
          for($i=0;$i<$count;$i++)
          {
             $this->temp.='[\''.$this->node[$i].'\']['.$this->{'cou_'.($i+1).'_'.$this->node[$i]}.']';
          }

          $string = $this->temp;
          eval('$this->result'.$string.'="";');

          if (count($attribs)) {
               while (list($k, $v) = each($attribs)) {
                eval('$this->result'.$string.'[\''.$k.'\']="'.$v.'";');
             }
          }
       }

       // private
       function endElement($parser, $name)
       {
          $count = count($this->node);
          $count++;
          $this->{'cou_'.$count.'_'.$this->node[$count]} = 0;

          unset($this->temp);
          array_pop($this->node);
       }

       // private
       function characterData($parser, $data)
       {
          $string = $this->temp;
          eval('$this->result'.$string.'="'.$data.'";');
       }
    }

?>
ÃßõÃßõ : 623 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,135
[jQuery] $(document).ready(function(){});
2,134
FIELDSET ű׸¦ ÀÌ¿ëÇÏ¸é ¶§¿¡ µû¶ó ±ò²ûÇÑ Å×À̺íÀ» ¸¸µé ¼ö ÀÖ´Ù
2,133
overflow : hidden , text-overflow : ellipsis (±ÛÀÇ ±æÀÌ°¡ Ä­ÀÇ ±æÀ̸¦ ³Ñ¾î°¥ °æ¿ì ... ·Î ´ëü )
2,132
linux command ¸®´ª½º È°¿ë ¸í·Éµé..
2,131
ÇÑ±Û ¾ÕºÎÅÍ ÀÚ¸£±â
2,130
phpquery
2,129
º¸¾ÈÀ» À§ÇÑ php ÇÔ¼ö Á¦ÇÑ
2,128
SSH °ø°Ý ¾ÆÀÌÇÇ ÇÊÅ͸µ ½ºÅ©¸³Æ®(recent IP ±â¹Ý)
2,127
IE6ºÎÅÍ IE9±îÁö ´ëÀÀÇϱâ.
2,126
UTF-8 üũ ¹× º¯È¯
2,125
mysql¿¡¼­ ÇѱÛÀÌ ±úÁú¶§ Áï ¹®ÀÚ¼ÂÀÌ ¸ÂÁö ¾ÊÀ»¶§
2,124
XDebug¸¦ ÀÌ¿ëÇÑ PHP µð¹ö±ë
php xml parse 3Á¾ ¼¼Æ®
2,122
php ³»ÀåÇÔ¼öÀ» ÀÌ¿ëÇÑ XML Parser
2,121
Mysql ³¯Â¥/½Ã°£ °ü·Ã ÇÔ¼ö
2,120
HTML À¥¹®¼­ÀÇ TAG Áö¿ì°í º»¹®¸¸ ³²±â±â, php ¸í·É¸ðµå¿¡¼­ ½ÇÇàÇϱâ
2,119
ÅÂ±× Á¦°Å ÇÔ¼ö strip_tags2 & ¸µÅ© ÃßÃâ ÇÔ¼ö extract_link
2,118
PHP ±â¹Ý À¥ Ž»ö±â ºñ±³
2,117
escape(), encodeURI(), encodeURIComponent() Â÷ÀÌÁ¡
2,116
PHP È®ÀåÀÚ ¼û±â±â
2,115
PHP ¿¡·¯ Ãâ·Â ¾ÈÇϱâ
2,114
phpinfo() ¸¦ ¼û°Ü¶ó...
2,113
HTML ű׸¦ ¸·±â
2,112
ÆÄÀÏ ¾÷·Îµå º¸¾È ¹®Á¦ - 7 °¡Áö ¸ðµÎ üũ !!!
2,111
zend encode ¸¦ »ç¿ëÇÏÁö ¾Ê°í PHP ¼Ò½º ¾Èº¸ÀÌ°Ô ÇÏ´Â ¹æ¹ý ?
2,110
¹Ýµå½Ã ¾Ë¾Æ¾Æ ÇÒ PHP º¸¾È 30 °¡Áö
2,109
php HereDoc(EDO)¹®ÀÚ »ç¿ë¹ý
2,108
php UserDir À¯Àúº° ¼­ºñ½º
2,107
¸®´ª½º PATH °æ·Î ¼³Á¤Çϱâ
2,106
mysql Å×ÀÌºí º¹Á¦ Çϱâ (±¸Á¶ ¶Ç´Â µ¥ÀÌÅÍ ¸ðµÎ)
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.