繁体   English   中英

从远程页面获取值并存储为本地变量

[英]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,但是:

  1. 下载XML文件的内容-在远程位置读取它
  2. 解析XML
  3. 将已解析元素的值存储在变量中
$xml = simplexml_load_file('test.xml');
$var = $xml[0];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM