gpt4 book ai didi

php - 在 PHP 中抓取、缓存和解析远程 XML 提要、验证检查

转载 作者:可可西里 更新时间:2023-11-01 13:58:54 27 4
gpt4 key购买 nike

目前,我正在抓取远程站点的 XML 提要并将本地副本保存在我的服务器上,以便用 PHP 进行解析。

问题是如何在 PHP 中添加一些检查以查看 feed.xml 文件是否有效,如果是则使用 feed.xml。

如果因错误而无效(有时远程 XML 提要会显示空白 feed.xml),则提供来自之前抓取/保存的 feed.xml 的备份有效副本?

代码抓取feed.xml

<?php
/**
* Initialize the cURL session
*/
$ch = curl_init();
/**
* Set the URL of the page or file to download.
*/
curl_setopt($ch, CURLOPT_URL,
'http://domain.com/feed.xml');
/**
* Create a new file
*/
$fp = fopen('feed.xml', 'w');
/**
* Ask cURL to write the contents to a file
*/
curl_setopt($ch, CURLOPT_FILE, $fp);
/**
* Execute the cURL session
*/
curl_exec ($ch);
/**
* Close cURL session and file
*/
curl_close ($ch);
fclose($fp);
?>

到目前为止只有这个可以加载它

$xml = @simplexml_load_file('feed.xml') or die("feed not loading");

谢谢

最佳答案

如果 curl 应该直接写入文件不是很重要,那么您可以在重写本地 feed.xml 之前检查 XML:

<?php
/**
* Initialize the cURL session
*/
$ch = curl_init();
/**
* Set the URL of the page or file to download.
*/
curl_setopt($ch, CURLOPT_URL, 'http://domain.com/feed.xml');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$xml = curl_exec ($ch);
curl_close ($ch);
if (@simplexml_load_string($xml)) {
/**
* Create a new file
*/
$fp = fopen('feed.xml', 'w');
fwrite($fp, $xml);
fclose($fp);
}

?>

关于php - 在 PHP 中抓取、缓存和解析远程 XML 提要、验证检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2262079/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com