Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function parseTag($xml)
- {
- $i = 0;
- $x = false;
- $tag = '';
- $filter = str_split('1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM_',1);
- for ($i = 0; $i < strlen($xml); $i++)
- {
- if ($x)
- {
- if (in_array(substr($xml,$i,1),$filter))
- {
- $tag .= substr($xml,$i,1);
- }
- else
- {
- break;
- }
- }
- if (substr($xml,$i,1) == '<')
- {
- $x = true;
- }
- }
- return $tag;
- }
- function giveXmlContentByTag($xml,$tags)
- {
- $tag = parseTag($xml);
- if ($tag == '')
- {
- return $xml;
- }
- else
- {
- //echo($xml."\r\n---------------\r\n");
- $xmlcontent = explode('<'.$tag,$xml);
- $xmlcontent = explode('</'.$tag,$xmlcontent[1]);
- if (strstr($xmlcontent[0],'<'))
- {
- $xmlcontent = explode('<',$xmlcontent[0]);
- unset($xmlcontent[0]);
- $xmlcontent = '<' . implode('<',$xmlcontent);
- }
- else
- {
- $xmlcontent = explode('>',$xmlcontent[0]);
- $xmlcontent = $xmlcontent[count($xmlcontent)-1];
- }
- $i = 0;
- while(true)
- {
- if ($tags[$tag.'_'.$i] == '')
- {
- $tags[$tag.'_'.$i] = $xmlcontent; break;
- }
- else
- {
- $i += 1;
- }
- }
- $rest = explode('</'.$tag,$xml); unset($rest[0]);
- $rest = implode('</'.$tag,$rest);
- $rest = explode('<',$rest); unset($rest[0]);
- $rest = '<' . trim(implode('<',$rest));
- if (trim($rest) != '<')
- {
- return(giveXmlContentByTag($rest,$tags));
- }
- else
- {
- return($tags);
- }
- }
- }
- function pall($xml)
- {
- $parsed = giveXmlContentByTag($xml,array());
- foreach ($parsed as $pk => $pv)
- {
- if (strstr($pv,'<'))
- {
- @$parsed[$pk] = pall($pv,array());
- }
- else
- {
- $parsed[$pk] = $pv;
- }
- }
- return ($parsed);
- }
- $parsed_array = pall(str_replace('?xml','xml',$xml));
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement