PHP がバックエンド サーバーとして動作している場合、フロントエンドから XML ファイルを解析し、XML 形式でデータを返す必要があることがよくあります。この場合、XML と連想配列の間で変換が行われます。 PHP は非常に頻繁に使用されます。たとえば、flex やその他のクライアント プログラムは、多くの場合、このメソッドを使用してサーバーと対話します。以下にまとめた 2 つの方法は、XML と配列の変換の作業負荷を大幅に簡素化します。
コードをコピーします コードは次のとおりです:
/**
*
* 将简单数组转化为简单的xml
* @param string $data 要进行转化的数组
* @param string $tag 要使用的标签
* @example
* $arr = array(
'rtxAccount'=>'aaron','ipAddr'=>'192.168.0.12',
'conferenceList'=>array('conference'=>
array(
array('conferenceId'=>1212,'conferenceTitle'=>'quanshi 444','smeAccount'=>'http://www.jb51.net'),
array('conferenceId'=>454,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'http://www.jb51.net'),
array('conferenceId'=>6767,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'http://www.jb51.net'),
array('conferenceId'=>232323,'conferenceTitle'=>'quanshi uuu','smeAccount'=>'http://www.jb51.net'),
array('conferenceId'=>8989,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'http://www.jb51.net'),
array('conferenceId'=>1234343212,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'http://www.jb51.net')
)
)
);
转化为:
aaron
192.168.0.12
1212
quanshi 444
http://www.jb51.net
454
quanshi meetting
http://www.jb51.net
6767
quanshi ミーティング
http://www.jb51.net カンファレンス>
<カンファレンス>
232323
quanshi uuu
http://www.jb51.net
カンファレンス>
<カンファレンス>
8989
quanshi ミーティング
http://www.jb51.net カンファレンス>
<カンファレンス>
1234343212
quanshi ミーティング
http://www.jb51.net smeAccount>
*/
function array2xml($data,$tag = '')
{
$xml = '';
foreach($data as $key => $value)
{
if(is_numeric($key))
{
if(is_array($value))
{
$xml .= "<$tag>";
$xml .= array2xml($value) ;
$xml .="$tag>";
}
else
{
$xml .= "<$tag>$value$tag>";
}
}
else
{
if(is_array($value))
{
$keys = array_keys($value);
if(is_numeric($keys[0]))
{
$xml .=array2xml($value,$ key);
}
else
{
$xml .= "<$key>";
$xml .=array2xml($value);
$xml .= "$key>";
}
}}else
{
$ xml。= "&lt; $ key&gt; $ value&lt;/$ key&gt;";
}
}}
}
}
}}}
xml2array代金
代金如下:
/**
*
* 単純な XML を連想配列に変換します
* @param string $xmlString xml string
* @example
*
lt ;/rtxAccount>
192.168.1.56
120
1
< rtxAccount>招待者 1 の RTX アカウント
招待者 1 の電話番号
招待者 2 の RTX アカウント< /rtxアカウント>
<; tel>Invitee 2 電話番号
変換後の連想配列:
Array
(
[ ConferenceTitle] => IT Exchange Conference
[ startTime] => 2011-12-19 12:00:00
[ipAddr] => 120
[招待者] =&gt;*/
function xml2array($xmlString = '')
{
$targetArray = array();
$xmlObject = simplexml_load_string($xmlString);
$mixArray = (array)$xmlObject;
foreach($mixArray as $key => $value)
{
if(is_string($value))
{
$targetArray[$key] = $value;
}
if(is_object($value))
{
$targetArray[$key] = xml2array($value->asXML());
}
if(is_array($value))
{
foreach($value as $zkey => $zvalue)
{
if(is_numeric($zkey))
{
$targetArray[$key][] = xml2array($zvalue->asXML());
}️
}
http://www.bkjia.com/PHPjc/327794.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/327794.html
技術記事 PHP がバックエンド サーバーとして動作している場合、フロントエンドから XML ファイルを解析し、XML 形式でデータを返す必要があることがよくあります。この場合、XML は PHP の配列に関連付けられます。