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

时间:2009-12-24 15:49:17

标签: php

我在远程服务器上有一个页面,它返回一个xml值

<?xml version="1.0" ?><Tracker>12345</Tracker>

如何将值12345或标记中的任何内容转换为PHP变量? 我知道我不能做一些简单的事情:

<?php
    $var = http://www.www.com/file.php;
    echo $var;   //12345
?>

我对创建网络服务的整个想法不熟悉 - 我认为这应该是什么。?。

3 个答案:

答案 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那么好,但是:

  1. 下载XML文件的内容 - 读取远程位置
  2. 解析XML
  3. 将已解析元素的值存储在varianble

答案 2 :(得分:0)

$xml = simplexml_load_file('test.xml');
$var = $xml[0];