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

标签 php

我在远程服务器上有一个页面返回单个 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 ,如果您的服务器配置允许您这样做。


一旦您将 XML 放入 PHP 变量中,使用 SimpleXML 就可以很容易地获得您想要的值。例如:

$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的文档:有几个您可能感兴趣的选项——例如,指定超时)

关于php - 从远程页面获取值并将其存储为本地变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1958778/

相关文章:

php - 尝试获取网站内容时出现禁止错误

php - 如何使 PHP 在 Windows Server 2019 上运行 XCOPY 命令

php - 适用于 Raspberry Pi 的最佳轻型服务器(Linux + Web 服务器 + 数据库)

php - MYSQL查询显示: the first order for each customer

php - sql查询有时有效,有时无效

PHP/mysql 如何使用登录用户将数据从数据库回显到文本框

php - 多选 MySQL 数据中的复选框,用逗号 (,) 分隔

PHP/MySQLi 函数从 3 个表生成 CSV,但分别需要 1 行

php - Codeigniter 选择不同的并传递变量列表

php - 从 php 获取 JSON 编码的变量