gpt4 book ai didi

php - 在 simplexml_load_file 上设置超时

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:48:18 25 4
gpt4 key购买 nike

我有这个输出 rss 提要的脚本。我想要做的是让它尝试到达 rss url 之类的 5 秒顶部,如果它不能那么我希望它加载服务器上的备份 xml 文档。这就是我所拥有的,但它不起作用:

 <?php

include '../php/connect.php';
$metaData = mysql_query("SELECT * FROM `siteinfo`") or die("couln't find table :(");
$displayData = mysql_fetch_assoc($metaData);
$url = $displayData['status'];
$xml = file_get_contents($url);

stream_set_timeout($xml, 5);

if ($xml == FALSE) {

$xml = simplexml_load_file('backUpXml.xml');

foreach ($xml->channel->item as $item) {
echo '<a href="'.$item->guid.'" alt="'.$item->title.'" target="_blank">', substr($item->title, 0, 62), '...</a><br /><span>', substr($item->pubDate, 4, 18),'</span><br /><hr /><br />';
}
} else {

$xml = simplexml_load_file($url);

foreach ($xml->channel->item as $item) {
echo '<a href="'.$item->guid.'" alt="'.$item->title.'" target="_blank">', substr($item->title, 0, 62), '...</a><br /><span>', substr($item->pubDate, 4, 18),'</span><br /><hr /><br />';
}
}

?>

我收到超时错误,仅此而已。任何见解都会很棒!

最佳答案

@AnthonySterling 指出了一个更好的解决方案 here :

function simplexml_load_file_from_url($url, $timeout = 5){
$opts = array('http' => array('timeout' => (int)$timeout));
$context = stream_context_create($opts);
$data = file_get_contents($url, false, $context);
if(!$data){
trigger_error('Cannot load data from url: ' . $url, E_USER_NOTICE);
return false;
}
return simplexml_load_string($data);
}

关于php - 在 simplexml_load_file 上设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12399610/

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