我在远程服务器上有一个页面,它返回一个xml值
<?xml version="1.0" ?><Tracker>12345</Tracker>
如何将值12345或标记中的任何内容转换为PHP变量? 我知道我不能做一些简单的事情:
<?php
$var = http://www.www.com/file.php;
echo $var; //12345
?>
我对创建网络服务的整个想法不熟悉 - 我认为这应该是什么。?。
答案 0 :(得分:5)
您必须分两步:
请注意,如果服务器的配置允许您使用simplexml_load_file
,则可以将这两个步骤合并为一个。
一旦在PHP变量中使用SimpleXML获得XML,就可以很容易地获得所需的值。例如:
$string = '<?xml version="1.0" ?><Tracker>12345</Tracker>';
$xml = simplexml_load_string($string);
echo (string)$xml;
会得到你
12345
从远程URL获取该XML的内容可以简单如下:
$string = file_get_contents('http://your-remote-url');
如果你能做到这一点,你也可以直接使用SimpleXML远程URL:
$xml = simplexml_load_file('http://your-remote-url');
echo (string)$xml;
但只有在服务器配置中启用allow_url_fopen
时才会有效。
如果您的服务器上禁用了allow_url_fopen
,则可以使用curl从远程服务器获取XML;像这样的东西应该可以解决问题,例如:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://your-remote-url");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$string = curl_exec($ch);
curl_close($ch);
然后,你仍然可以使用simplexml_load_string
,就像我在第一个例子中所做的那样。
(如果使用curl,请查看curl_setopt
的文档:有几个选项可能会让您感兴趣 - 例如,指定超时)
答案 1 :(得分:0)
我不知道PHP那么好,但是:
答案 2 :(得分:0)
$xml = simplexml_load_file('test.xml');
$var = $xml[0];