Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- *
- * @ This file is created by deZender.Net
- * @ deZender (PHP5 Decoder for ionCube Encoder)
- *
- * @ Version : 1.1.5.0
- * @ Author : DeZender
- * @ Release on : 09.06.2012
- * @ Official site : http://DeZender.Net
- *
- */
- class grepp {
- function xml2array($url, $get_attributes = 1, $priority = 'tag') {
- $contents = '';
- if (!function_exists( 'xml_parser_create' )) {
- return array( );
- }
- $parser = xml_parser_create( '' );
- $contents = $url;
- xml_parser_set_option( $parser, XML_OPTION_TARGET_ENCODING, 'UTF-8' );
- 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, trim( $contents ), $xml_values );
- xml_parser_free( $parser );
- if (!$xml_values) {
- return null;
- }
- $xml_array = array( );
- $parents = array( );
- $opened_tags = array( );
- $arr = array( );
- $current = &$xml_array;
- $repeated_tag_index = array( );
- foreach ($xml_values as $data) {
- unset( $attributes );
- unset( $value );
- extract( $data );
- $result = array( );
- $attributes_data = array( );
- $value;
- if (isset( $value )) {
- if ($priority == 'tag') {
- $result = $value;
- } else {
- $result['value'] = $value;
- }
- }
- $attributes;
- if (( isset( $attributes ) && $get_attributes )) {
- foreach ($attributes as $attr => $val) {
- if ($priority == 'tag') {
- $attributes_data[$attr] = $val;
- continue;
- }
- $result['attr'][$attr] = $val;
- }
- }
- if ($type == 'open') {
- $parent[$level - 1] = &$current;
- if (( !is_array( $current ) || !in_array( $tag, array_keys( $current ) ) )) {
- $current[$tag] = $result;
- if ($attributes_data) {
- $current[$tag . '_attr'] = $attributes_data;
- }
- $repeated_tag_index[$tag . '_' . $level] = 1;
- $current = &$current[$tag];
- continue;
- }
- $current[$tag][0];
- if (isset( )) {
- $current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
- ++$repeated_tag_index[$tag . '_' . $level];
- } else {
- $current[$tag] = array( $current[$tag], $result );
- $repeated_tag_index[$tag . '_' . $level] = 2;
- $current[$tag . '_attr'];
- if (isset( )) {
- $current[$tag]['0_attr'] = $current[$tag . '_attr'];
- unset( $current[$tag . '_attr'] );
- }
- }
- $last_item_index = $repeated_tag_index[$tag . '_' . $level] - 1;
- $current = &$current[$tag][$last_item_index];
- continue;
- }
- if ($type == 'complete') {
- $current[$tag];
- if (!isset( )) {
- $current[$tag] = $result;
- $repeated_tag_index[$tag . '_' . $level] = 1;
- if (( $priority == 'tag' && $attributes_data )) {
- $current[$tag . '_attr'] = $attributes_data;
- continue;
- }
- continue;
- }
- $current[$tag][0];
- if (( isset( ) && is_array( $current[$tag] ) )) {
- $current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
- if (( ( $priority == 'tag' && $get_attributes ) && $attributes_data )) {
- $current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
- }
- ++$repeated_tag_index[$tag . '_' . $level];
- continue;
- }
- $current[$tag] = array( $current[$tag], $result );
- $repeated_tag_index[$tag . '_' . $level] = 1;
- if (( $priority == 'tag' && $get_attributes )) {
- $current[$tag . '_attr'];
- if (isset( )) {
- $current[$tag]['0_attr'] = $current[$tag . '_attr'];
- unset( $current[$tag . '_attr'] );
- }
- if ($attributes_data) {
- $current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
- }
- }
- ++$repeated_tag_index[$tag . '_' . $level];
- continue;
- }
- if ($type == 'close') {
- $current = &$parent[$level - 1];
- continue;
- }
- }
- return $xml_array;
- }
- ......................................................................
- ...................................
- .............
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement