[英]What is the Fastest Way to parse RSS feed in PHP?
我已經提取了7個RSS feed,並在我們的網站中進行了解析。 但是解析時間非常慢,在PHP中解析RSS feed的最佳方法是什么。
還可以通過GZip加快解析時間嗎?
我在我的.htaccess文件中使用了此GZip,但沒有區別
這是我的.htaccess文件中的GZip腳本
# 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
這是我的PHP代碼,用於解析RSS feed
<?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>';
}
}
?>
任何幫助/建議將不勝感激。
似乎您正在根據每個用戶請求在線解析供稿。
總是很慢。 您知道這是網絡。
讀取RSS提要的唯一明智的方法是異步方法 。 一種腳本可以定期解析它們並更新本地數據庫,另一種腳本可以顯示本地數據庫中的條目。
而且,gzip壓縮輸出與解析入站數據幾乎沒有關系。 去搞清楚。
我不確定Gzip是否會對解析時間產生積極的影響,它將減少下載時間,僅此而已。
您應該考慮使用SAX解析器而不是simplexml:
在大文件上(如果使用得當),SAX解析器比simplexml更快。 sax解析器的內存使用量也較低。
看看這個答案
評論和答案摘要:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.