Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从远程页面获取值并存储为局部变量_Php - Fatal编程技术网

Php 从远程页面获取值并存储为局部变量

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值的页面

<?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