我有一個簡單的PHP應用程序,使用,其中包括每小時更新一次的外部XML文件。
我只需要使用該文件的一個字段,因此我使用了simplexml_load_file()
。
問題是,此功能僅適用於當前保存在服務器上的文件,而不是外部文件。加載XML文件到服務器
如何在服務器上定期下載XML文件(每次刷新下載都可以)?謝謝。
我有一個簡單的PHP應用程序,使用,其中包括每小時更新一次的外部XML文件。
我只需要使用該文件的一個字段,因此我使用了simplexml_load_file()
。
問題是,此功能僅適用於當前保存在服務器上的文件,而不是外部文件。加載XML文件到服務器
如何在服務器上定期下載XML文件(每次刷新下載都可以)?謝謝。
<?php
copy('http://www.example.com/', 'local-file.xml');
?>
copy可以在存儲器中光的方式做到這一點(它不需要將整個文件加載到存儲器例如像的file_get_contents)。
file_put_contents('updated.xml',
file_get_contents('http://someulr.com/updated.xml')
);
simplexml_load_file('updated.xml');
完美的作品,謝謝! – 2011-04-12 06:29:26
試試這個代碼,它可以幫助你
<?php
function getXML()
{
// initialize the XML Parser
$xml_parser = xml_parser_create();
// Set the functions to handle opening and closing tags
xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler");
// Set the function to handle blocks of character data
xml_set_character_data_handler($xml_parser, "characterDataHandler");
// Open the XML file for reading
$fp = @fopen("http://www.abc.com/mytest.xml","r");
if(!$fp)
{
return "XML-Server down";
}
// Read the XML file 4KB at a time
while ($data = fread($fp, 4096))
// Parse each 4KB chunk with the XML parser created above
if(xml_parse($xml_parser, $data, feof($fp))==0)
{
// Handle errors in parsing
return "\"XML-Server down\"";
}
// Close the XML file
fclose($fp);
// Free up memory used by the XML parser
xml_parser_free($xml_parser);
}
function startElementHandler($parser, $tagName, $attrs)
{
}
function endElementHandler($parser, $tagName)
{
}
function characterDataHandler($parser, $data)
{
}
?>
它沒有回答我目前的問題,但將來會記住更復雜的XML解析。謝謝! – 2011-04-12 06:31:09
完美的作品,謝謝! – 2011-04-12 06:28:58