[英]Get value from remote page and store as local variable
我在远程服务器上有一个页面,该页面返回一个xml值
<?xml version="1.0" ?><Tracker>12345</Tracker>
如何将值12345或标签中的任何内容获取到PHP变量中? 我知道我做不到以下事情:
<?php
$var = http://www.www.com/file.php;
echo $var; //12345
?>
我对创建Web服务的整个想法是陌生的-我认为这就是应该的。
您必须分两步走:
请注意,如果服务器的配置允许您执行此操作,那么可以使用simplexml_load_file
将这两个步骤合并为一个步骤。
使用SimpleXML将XML包含在PHP变量中后,就很容易获得所需的值。 例如 :
$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');
而且,如果可以做到这一点,则还可以直接将远程URL与SimpleXML一起使用:
$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
的文档:有一些您可能感兴趣的选项-例如,指定超时)
我不太了解PHP,但是:
$xml = simplexml_load_file('test.xml');
$var = $xml[0];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.