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


php xml parse 3Á¾ ¼¼Æ®
13³â Àü
<?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.'";');
       }
    }

?>
ÃßõÃßõ : 697 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,891
ÀÔ·Â Çʵ忡¼­ ƯÁ¤´Ü¾î(¿¹:#err)°¡ Æ÷ÇԵǾúÀ» ¶§ ½Ç½Ã°£ °¨Áö ¹× °æ°íâ ¶ç¿ì±â
2,890
µ¥ÀÌÅͺ£À̽º ÃÖÀûÈ­¿Í Äõ¸® È¿À²¼ºÀ» ³ôÀÌ °Ë»ö ¼º´ÉÀ» °³¼±ÇÏ´Â ¹æ¹ý
2,889
°£´ÜÇÑ °Ô½ÃÆÇ ¸¸µé±â
2,888
PHPÀÇ php.ini ÆÄÀÏ¿¡¼­ ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÁÖ¿ä Ç׸ñµéÀ» Ä«Å×°í¸®º°·Î Á¤¸®
2,887
À¯Æ©ºê µ¿¿µ»óÀÇ ½æ³×ÀÏ À̹ÌÁö¸¦ üũÇÏ¿© À¯È¿ÇÑ ¿µ»óÀ̾ƴҶ§ ¿¬°áµÈ üũ¹Ú½º¸¦ ÀÚµ¿À¸·Î üũ
2,886
À̹ÌÁö URLÀÌ À¯È¿ÇÏÁö ¾ÊÀ» ¶§, ÇØ´ç À̹ÌÁö¿Í ¿¬°áµÈ üũ¹Ú½º¸¦ ÀÚµ¿À¸·Î üũ
2,885
HTTPS·Î Á¢¼ÓÇÑ »ç¿ëÀÚ¸¦ °­Á¦·Î HTTP·Î ¸®µð·º¼Ç ÇÏ·Á¸é
2,884
PHP¿¡¼­ MP3 ÆÄÀÏÀ» Á÷Á¢ ÀÐ°í ½ºÆ®¸®¹Ö Çϱâ
2,883
ÇöÀç ÆäÀÌÁö°¡ location.reload()¿¡ ÀÇÇØ »õ·Î°íħµÇ¾ú´ÂÁö
2,882
ÅؽºÆ® ÆÄÀÏÀ» Àаí, °¢ ÁÙÀÇ ³¡¿¡¼­ 6±ÛÀÚ¸¦ »èÁ¦ÇÑ ÈÄ, °á°ú¸¦ »õ·Î¿î ÆÄÀÏ¿¡ ÀúÀåÇÕ´Ï´Ù.
2,881
cURLÀ» »ç¿ëÇÏ¿© ¸®´ÙÀÌ·ºÆ®¸¦ µû¶ó°¡ ÃÖÁ¾ URL °¡Á®¿À±â
2,880
[PHP] $_SERVER ȯ°æº¯¼ö
2,879
10Áø¼ö <-> 16Áø¼ö º¯È¯±â PHP¼Ò½º
2,878
ÅؽºÆ®¿¡ Á÷Á¢ ±×¶óµ¥ÀÌ¼Ç »ö»óÀ» Àû¿ëÇÏ·Á¸é?
2,877
CSS¸¦ »ç¿ëÇÏ¿© ¿ä¼ÒÀÇ ³»¿ë¹°¿¡ µû¶ó width¸¦ Á¶Á¤ÇÏ´Â ¹æ¹ý
2,876
À¥¼­¹ö ip È®ÀÎ
2,875
À¥È£½ºÆÃÀÇ Àý´ë°æ·Î¸¦ È®ÀÎ
2,874
input ÀÔ·Â ÇÊµå ¾ÕµÚ °ø¹é ½Ç½Ã°£ Á¦°Å
2,873
Placeholder Æ÷Ä¿½º½Ã °¨Ãß±â
2,872
MySQL Áߺ¹µÈ µ¥ÀÌÅ͸¦ »èÁ¦
2,871
MySQL Áߺ¹ µ¥ÀÌÅÍ È®ÀÎ
2,870
sessionStorage.getItem ¿Í sessionStorage.setItem
2,869
Á¦ÀÌÄõ¸® ·£´ýÀ¸·Î ¹è°æ»ö º¯°æ
2,868
preg match¿¡ °üÇÑ Á¤±Ô½Ä
2,867
Stream an audio file with MediaPlayer ¿Àµð¿À ÆÄÀÏ ½ºÆ®¸®¹Ö Çϱâ
2,866
Audio Streaming PHP Code
2,865
PHP $ SERVER ȯ°æ º¯¼ö Á¤¸®
2,864
Vimeo (ºñ¸Þ¿À) API ¸¦ »ç¿ëÇÏ¿© Ç÷¹À̾î ÄÁÆ®·ÑÇϱâ
2,863
iframe »ç¿ë½Ã ÇÏ´Ü¿¡ ¹ß»ýÇÏ´Â °ø¹é Á¦°Å¹æ¹ý
2,862
¾ÆÀÌÇÁ·¹ÀÓ(iframe) Àüüȭ¸é °¡´ÉÇÏ°Ô Çϱâ
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.