在PHP中解析RSS提要的最快方法是什么?
我在我们的网站上拉了7个RSS提要和解析。但是解析时间非常慢,在PHP中解析RSS提要的最佳方法是什么 还有没有一种方法可以更快地解析GZip 我在.htaccess文件中使用这个GZip,但没有区别 下面是我的.htaccess文件中的GZip脚本在PHP中解析RSS提要的最快方法是什么?,php,rss,Php,Rss,我在我们的网站上拉了7个RSS提要和解析。但是解析时间非常慢,在PHP中解析RSS提要的最佳方法是什么 还有没有一种方法可以更快地解析GZip 我在.htaccess文件中使用这个GZip,但没有区别 下面是我的.htaccess文件中的GZip脚本 # compress text, html, javascript, css, xml: AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css applicatio
# compress text, html, javascript, css, xml: AddOutputFilterByType
DEFLATE text/plain text/html text/xml text/css application/xml
application/xhtml+xml application/rss+xml application/javascript
application/x-javascript
下面是我解析RSS提要的PHP代码
<?php
function getFeed($feed_url){
$content = file_get_contents($feed_url);
$x = new SimpleXMLElement($content);
for ($i=0; $i<=4; $i++){
$entry = $x->channel->item[$i];
// if promotion price is set, then use the promotion price instead of Normal Price
$normal = $entry->NormalPrice;
$promo = $entry->PromotionPrice;
// Get the links and titles
$image = $entry->Image->Url;
$link = $entry->link;
$title = $entry->title;
if((isset($promo)) && ($promo > 0)){
$price = 'R '.number_format(trim($promo), 2);
}else if($normal > 0 && $promo == 0){
$price = 'R '.number_format(trim($normal), 2);
}else if((empty($normal) && empty($promo)) || (($normal == 0) && ($promo == 0))){
$price = 'Out Of Stock';
}
echo '<div class="rssImages">';
echo '<div class="imageCover">';
echo '<a href="'.$link.'"><img src="'.$image.'" /></a><br /><br />';
echo '</div>';
echo '<div class="rssCntImg">';
echo '<a href="'.$link.'" id="rsslinks">'.$title.'</a> <br />';
echo '</div>';
echo '<strong>'.$price."</strong>";
echo '<label class="cleared"></label>';
echo '</div>';
}
}
?>
任何帮助/建议都将不胜感激。我不确定Gzip是否会对解析时间产生积极影响,它会减少下载时间,但仅此而已
您应该考虑使用SAX解析器而不是SimeXML:< /P>
看看这个你似乎在根据每个用户请求在线解析你的订阅源。
它总是很慢。这是网络,你知道 阅读RSS提要的唯一明智的方法是异步方式。一个脚本用于定期解析它们并更新本地数据库,另一个脚本用于显示本地数据库中的条目
而且,您知道,gzip输出与解析入站数据几乎没有关系。如图所示。评论和答案摘要:
- 确保只在需要时进行解析,单独检查更新,并在页面请求中提供来自本地数据库的信息
- 确保延迟不是由于远程服务器的响应速度慢造成的(同样,缓存可以缓解这一问题)
- 除非提要很大,否则任何XML解析器都可以,如果提要很大,这可能是延迟的原因
- GZip,正如所述是服务器端的,您可以指定客户端(您的脚本)接受GZip,例如使用cURL,但是cURL的用法是一个应该单独询问的问题。无论如何,它都不会减少解析时间