Php 从远程页面获取值并存储为局部变量
我在远程服务器上有一个返回单个xml值的页面Php 从远程页面获取值并存储为局部变量,php,Php,我在远程服务器上有一个返回单个xml值的页面 <?xml version="1.0" ?><Tracker>12345</Tracker> 如何将值12345或标记中的任何内容输入到PHP变量中? 我知道我不能做像这样简单的事情: <?php $var = http://www.www.com/file.php; echo $var; //12345 ?> 我对创建web服务的整个想法都不熟悉-我认为这就是应该的。?。您必须
<?xml version="1.0" ?><Tracker>12345</Tracker>
如何将值12345或标记中的任何内容输入到PHP变量中?
我知道我不能做像这样简单的事情:
<?php
$var = http://www.www.com/file.php;
echo $var; //12345
?>
我对创建web服务的整个想法都不熟悉-我认为这就是应该的。?。您必须分两步进行: 从远程服务器获取XML字符串 比如说 或与 然后,解析该XML以提取数据 比如说 请注意,如果服务器的配置允许,可以使用将这两个步骤合并为一个步骤 一旦使用SimpleXML将XML放入PHP变量中,就很容易获得所需的值。例如:
$string = '<?xml version="1.0" ?><Tracker>12345</Tracker>';
$xml = simplexml_load_string($string);
echo (string)$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);
从远程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,则可以使用curl从远程服务器获取XML;像这样的东西应该可以达到目的,例如:
$string = '<?xml version="1.0" ?><Tracker>12345</Tracker>';
$xml = simplexml_load_string($string);
echo (string)$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\u load\u字符串,就像我在第一个示例中所做的那样
如果使用curl,请查看以下文档:有几个选项可能会引起您的兴趣-例如,指定超时我对PHP不太了解,但是: 下载XML文件的内容-读取远程位置的XML文件 解析XML 将已解析元素的值存储在variable