ホームページ >バックエンド開発 >PHPチュートリアル >XML から PHP 配列への変換について質問する

XML から PHP 配列への変換について質問する

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 14:20:14730ブラウズ

xml php

我现在要接收一个xml的内容,不是文件
接收的文件内容如下格式

?2aaf03e419584feed0654e5769a6311af1573973cbc1d86c20e567412de720db02938049dcaa2cdb027b26b1c5a531f5000043d4b8401ea903154c73ede7b7a132db02df3f2f2ebe8e75cc30d78a35e8053cax0000111222333442ca0aa28045db415e593515dbc75569101e5d9027dbe62abda4152cec6d187944123452335dc87801693b5a5dae5e0647c985755cfa70d11ef8bcc927cf1d278cd248e测试9e777b52ad122782423981e661a857344743eb484babca069d83a5e4db62fc404021000028853283e74cff72999facd44a20e8bc8d0eeb250c17dbb9d7799c708e8350067ef7b1272013082867628f6b15608ffbaf2f2ce8a42f774d9b31ade8cd33315968d2096aa06b6a9a备注1fc5d0e0561e6ac7ffa5f4f6321609f6d491841f1d58b10c0e63230d0ab8291e9备注2a9e94b779936631b8a19c8d7028800b228fdc16e07ec8f69213a626c6be8b8ea备注3b4a3e5afcc79e7a23ff124bf6ba824ab2209869a93e45bfb7a0b2775b0ebbaf0


怎么直接把这段代码转换为php数组,这个不是个文件,是个变量


回复讨论(解决方案)

在线等,希望能有人速度帮忙解决了

找一个xml_to_array的函数 比如 

http://www.cnblogs.com/heiing/archive/2009/12/31/1637015.html

然后使用它

	function xml_to_array( $xml ){    $reg = "/<(\\w+)[^>]*?>([\\x00-\\xFF]*?)<\\/\\1>/";    if(preg_match_all($reg, $xml, $matches))    {        $count = count($matches[0]);        $arr = array();        for($i = 0; $i < $count; $i++)        {            $key = $matches[1][$i];            $val = xml_to_array( $matches[2][$i] );  // 递归            if(array_key_exists($key, $arr))            {                if(is_array($arr[$key]))                {                    if(!array_key_exists(0,$arr[$key]))                    {                        $arr[$key] = array($arr[$key]);                    }                }else{                    $arr[$key] = array($arr[$key]);                }                $arr[$key][] = $val;            }else{                $arr[$key] = $val;            }        }        return $arr;    }else{        return $xml;    }}// Xml 转 数组, 不包括根键function xmltoarray( $xml ){    $arr = xml_to_array($xml);    $key = array_keys($arr);    return $arr[$key[0]];}$xml = '<?xml version="1.0" encoding="utf-8"?><pReq><ax>0000</ax><at>ax0000111222333442</at><ab>12345</ab><an>测试</an><ao>4021000028853283</ao><ad>20130828</ad><pMemo1>备注1</pMemo1><pMemo2>备注2</pMemo2><pMemo3>备注3</pMemo3></pReq>';var_export(xmltoarray($xml));


结果
array (  'ax' => '0000',  'at' => 'ax0000111222333442',  'ab' => '12345',  'an' => '测试',  'ao' => '4021000028853283',  'ad' => '20130828',  'pMemo1' => '备注1',  'pMemo2' => '备注2',  'pMemo3' => '备注3',)


据此博主说他这个函数还不够完善,请慎用

谢谢了,解决!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。