PHP中simplexml_load_string函數(shù)使用說明
更新時(shí)間:2011年01月01日 19:54:24 作者:
這個(gè)問題遇到好幾次了,今天翻看以前代碼的時(shí)候看到,便記下來,需要的朋友可以參考下。
先用一段代碼重現(xiàn)一下問題
乍一看,結(jié)果很讓人費(fèi)解:
<?php
$string = <<<EOF
<data>
<foo><bar>hello</bar></foo>
<foo><bar>world</bar></foo>
</data>
EOF;
$data = simplexml_load_string($string);
print_r($data);
print_r($data->foo);
?>
乍一看,結(jié)果很讓人費(fèi)解:
SimpleXMLElement Object
(
[foo] => Array
(
[0] => SimpleXMLElement Object
(
[bar] => hello
)
[1] => SimpleXMLElement Object
(
[bar] => world
)
)
)
SimpleXMLElement Object
(
[bar] => hello
)
明明print_r顯示foo是一個(gè)有兩個(gè)bar元素的數(shù)組,但是最后卻僅僅顯示了一個(gè)bar元素!
原因其實(shí)很簡(jiǎn)單,在如上所示simplexml_load_string的結(jié)果里,foo并不是數(shù)組,而是一個(gè)迭代對(duì)象!
可以這樣確認(rèn):
foreach ($data->foo as $v) print_r($v);
foreach ($data->children() as $v) print_r($v);
看來,print_r或者var_dump之類的表象并不完全可信,自己多留心吧。
乍一看,結(jié)果很讓人費(fèi)解:
復(fù)制代碼 代碼如下:
<?php
$string = <<<EOF
<data>
<foo><bar>hello</bar></foo>
<foo><bar>world</bar></foo>
</data>
EOF;
$data = simplexml_load_string($string);
print_r($data);
print_r($data->foo);
?>
乍一看,結(jié)果很讓人費(fèi)解:
復(fù)制代碼 代碼如下:
SimpleXMLElement Object
(
[foo] => Array
(
[0] => SimpleXMLElement Object
(
[bar] => hello
)
[1] => SimpleXMLElement Object
(
[bar] => world
)
)
)
SimpleXMLElement Object
(
[bar] => hello
)
明明print_r顯示foo是一個(gè)有兩個(gè)bar元素的數(shù)組,但是最后卻僅僅顯示了一個(gè)bar元素!
原因其實(shí)很簡(jiǎn)單,在如上所示simplexml_load_string的結(jié)果里,foo并不是數(shù)組,而是一個(gè)迭代對(duì)象!
可以這樣確認(rèn):
復(fù)制代碼 代碼如下:
foreach ($data->foo as $v) print_r($v);
foreach ($data->children() as $v) print_r($v);
看來,print_r或者var_dump之類的表象并不完全可信,自己多留心吧。
您可能感興趣的文章:
- PHP使用DOM和simplexml讀取xml文檔的方法示例
- php使用simplexml_load_file加載XML文件并顯示XML的方法
- php+xml編程之SimpleXML的應(yīng)用實(shí)例
- PHP中使用SimpleXML檢查XML文件結(jié)構(gòu)實(shí)例
- php中simplexml_load_file函數(shù)用法實(shí)例
- php的SimpleXML方法讀寫XML接口文件實(shí)例解析
- php simplexmlElement操作xml的命名空間實(shí)現(xiàn)代碼
- PHP XML操作的各種方法解析(比較詳細(xì))
- PHP中的生成XML文件的4種方法分享
- PHP基于SimpleXML生成和解析xml的方法示例
相關(guān)文章
php統(tǒng)計(jì)文件大小,以GB、MB、KB、B輸出
學(xué)習(xí)了fread讀取命令,用到了filesize函數(shù),知道這個(gè)函數(shù)定大有用到的時(shí)候,遂用之編寫統(tǒng)計(jì)文件大小函數(shù)2011-05-05解析PHP SPL標(biāo)準(zhǔn)庫的用法(遍歷目錄,查找固定條件的文件)
本篇文章是對(duì)PHP中SPL標(biāo)準(zhǔn)庫的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP中substr()與explode()函數(shù)用法分析
這篇文章主要介紹了PHP中substr()與explode()函數(shù)用法分析,以實(shí)例的形式較為詳細(xì)的講述了substr()與explode()函數(shù)處理字符串的技巧,是字符串操作中使用頻率比較高的函數(shù),具有一定的實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11php-fpm優(yōu)化總結(jié)經(jīng)驗(yàn)分享
這篇文章主要為大家介紹了php-fpm優(yōu)化總結(jié)的經(jīng)驗(yàn)分享,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08