正如亚伦建议的那样。最好不要重新发明轮子,所以尝试用 simplexml_load_string() 解析它
// Init the CURL
$curl = curl_init();
// Setup the curl settings
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 0);
// grab the XML file
$raw_xml = curl_exec($curl);
curl_close($curl);
// Setup the xml object
$xml = simplexml_load_string( $raw_xml );
您现在可以将 $xml 变量的任何部分作为对象访问,这里是您发布的示例。
<Response>
<Ip>74.125.45.100</Ip>
<Status>OK</Status>
<CountryCode>US</CountryCode>
<CountryName>United States</CountryName>
<RegionCode>06</RegionCode>
<RegionName>California</RegionName>
<City>Mountain View</City>
<ZipPostalCode>94043</ZipPostalCode>
<Latitude>37.4192</Latitude>
<Longitude>-122.057</Longitude>
<Timezone>0</Timezone>
<Gmtoffset>0</Gmtoffset>
<Dstoffset>0</Dstoffset>
</Response>
现在,在您将此 XML 字符串加载到 simplexml_load_string() 之后,您可以像这样访问响应的 IP 地址。
$xml->IP;
simplexml_load_string() 将格式良好的 XML 文件转换为您可以操作的对象。我唯一能说的就是去尝试一下并玩一下
编辑:
来源
http://www.php.net/manual/en/function.simplexml-load-string.php