使用PHP制作XML页面的副本

时间:2012-07-01 21:58:30

标签: php javascript xml

我正在尝试使用Javascript访问来自http://www.bart.gov/dev/eta/bart_eta.xml的数据,但是,我发现除非我的服务器上有该页面的副本,否则我无法执行此操作。如何在我的服务器上创建一个http://www.bart.gov/dev/eta/bart_eta.xml的精确副本的代理页?我已经尝试过simplexml_load_file和file_get_contents,但是这两个函数都没有给我XML格式,它们给我一些像object(SimpleXMLElement)#1 (2) { ["channel"]=> object(SimpleXMLElement)#2 (6) { ["title"]=> string(23) "BART Real Time ETA Feed" ["link"]=> string(50) "http://www.bart.gov/schedules/developers/etas.aspx" ["description"]=> string(127) "Real time estimated arrivals for Bay Area Rapid Transit. Use subject to terms at http://www.bart.gov/dev/schedules/license.htm" ["copyright"]=> string(86) "Copyright (C) 2012 San Francisco Bay Area Rapid Transit District. All rights reserved." ["date"]=> string(10) "07/01/2012" ["time"]=> string(15) "02:52:39 PM PDT" } ["station"]=> array(44) { [0]=> object(SimpleXMLElement)#3 (5) { ["name"]=> string(12) ...

3 个答案:

答案 0 :(得分:1)

您需要先发送内容类型。

例如,将以下文件放在您的服务器bart_eta_proxy.php上,然后尝试访问它。

header("Content-type: text/xml; charset=utf-8");
echo file_get_contents('http://www.bart.gov/dev/eta/bart_eta.xml');

在这里,你去,它的工作: enter image description here

答案 1 :(得分:0)

您实际上可以通过Javascript从远程域访问信息:只需使用AJAX向该站点发出请求。

一个非常简单的例子,使用jquery:

function handlePage(xml)
{ /* Do something with that XML-page. */ }

$.ajax('http://www.bart.gov/dev/eta/bart_eta.xml').success(handlePage);

答案 2 :(得分:-1)

一旦将所有数据存储在变量中,为什么不循环遍历所有数据并将其存储在文件中?之后,您可以按照自己的意愿进行操作。