RSS 20 php生成類,快讀生成需要xml文件
在專案中用到的RSS 2.0版本的php產生類別。
只需要根據資料結構吧資料輸入進去就能產生一個xml文件,並透過函數輸出。
/** * Rss生成模块 * @author JerryLi (@lijian@dzs.mobi) * @see 协议说明 RSS规范遵循 2.0 * http://jyjsjd.iteye.com/blog/1543483 * http://rayleeya.iteye.com/blog/372802 */ final class CRssBuilder{ /** * 本地字符集 * @var string */ const LOCAL_CHARSET = 'gbk'; /** * 语言 * @var string */ const LANGUAGE = 'zh-cn'; /** * RSS所有者 * @var string */ const GENERATOR = 'www.csdn.net'; /** * 板块通道 * @var array */ private $_aChannel = null; /** * 构造函数 * @param string $aChannel 频道属性 * <li>array('title'=>'频道标题', 'description'=>'频道摘要', 'link'=>'本频道URL地址')</li> */ public function __construct($aChannel){ header('Content-Type:text/xml; charset=UTF-8'); //必须输出标准的xml头 $this->_aChannel = array('channel'=>$aChannel, 'items'=>array()); } /** * 析构函数 */ public function __destruct(){ } /** * 在通道内添加子项目 * @param int $iChannelId 通道ID(即:addChannel()) * <li>array('title'=>'标题','link'=>'文章的URL地址', 'description'=>'文章摘要','category'=>'栏目名称','utc_timestemp'=>'发布时间')</li> * @return int item的数量 */ public function addItems($aParam){ $this->_aChannel['items'][] = $aParam; return count($this->_aChannel['items']); } /** * 将内容序列化成rss的xml结构数据字符串 * @return string | null */ public function getSerialize(){ static $sTemplateChannel = null; static $sTemplateItem = null; if (empty($sTemplateChannel) || empty($sTemplateItem)){ $aTmp = array(); $aTmp[] = ' <channel>'; $aTmp[] = ' <language>'. self::LANGUAGE .'</language>'; $aTmp[] = ' <generator>'. self::GENERATOR .'</generator>'; $aTmp[] = ' <ttl>'. (60 * 24) .'</ttl>'; //更新时间为24小时 $aTmp[] = ' <pubDate>'. gmdate("D, d M Y 23:59:59", time()) .' GMT</pubDate>'; //当前RSS最后发布的时间 $aTmp[] = ' <title><![CDATA[{@channel_title}]]></title>'; $aTmp[] = ' <link><![CDATA[{@channel_link}]]></link>'; $aTmp[] = ' <description><![CDATA[{@channel_description}]]></description>'; $aTmp[] = '{@item}'; $aTmp[] = ' </channel>'; $sTemplateChannel = implode("\n", $aTmp); unset($aTmp); $aTmp = array(); $aTmp[] = ' <item>'; $aTmp[] = ' <title><![CDATA[{@item_title}]]></title>'; $aTmp[] = ' <link>{@item_link}</link>'; $aTmp[] = ' <description><![CDATA[{@item_description}]]></description>'; $aTmp[] = ' <category><![CDATA[{@item_category}]]></category>'; $aTmp[] = ' <guid><![CDATA[{@item_link}]]></guid>'; $aTmp[] = ' <pubDate>{@item_pubdate}</pubDate>'; //文章发布时间 $aTmp[] = ' </item>'; $sTemplateItem = implode("\n", $aTmp); unset($aTmp); } if (!empty($this->_aChannel)){ $aTmpItem = array(); foreach ($this->_aChannel['items'] as $aItem){ //内层遍历item $aParam = array( '{@item_title}'=> self::convert_encoding($aItem['title'], self::LOCAL_CHARSET), '{@item_link}'=> $aItem['link'], '{@item_description}'=> self::convert_encoding($aItem['description'], self::LOCAL_CHARSET), '{@item_category}'=> self::convert_encoding($aItem['category'], self::LOCAL_CHARSET), '{@item_pubdate}'=> gmdate("D, d M Y 23:59:59", $aItem['utc_timestemp']) .' GMT', ); $aTmpItem[] = strtr($sTemplateItem, $aParam); unset($aParam);$aParam=null; } $aParam = array( '{@channel_title}'=> self::convert_encoding($this->_aChannel['channel']['title'], self::LOCAL_CHARSET), '{@channel_link}'=> $this->_aChannel['channel']['link'], '{@channel_description}'=> self::convert_encoding($this->_aChannel['channel']['description'], self::LOCAL_CHARSET), '{@item}'=> implode("\n", $aTmpItem), ); $aOutBuf = array(); $aOutBuf[] = '<?xml version="1.0" encoding="utf-8" ?>'; $aOutBuf[] = '<rss version="2.0">'; $aOutBuf[] = strtr($sTemplateChannel, $aParam);; unset($aParam);$aParam=null; $aOutBuf[] = '</rss>'; return implode("\n", $aOutBuf); }else{ return null; } } /** * 对变量内容的进行字符编码转换 * @param string $sInCharset 转换前的字符集 * @param string $sOutCharset 转换后的字符集 * @param string | array $mixd 待转换的变量(数组或字符串) * @return string | array 完成转换后的结果 */ static public function convert_encoding(& $mixd, $sInCharset, $sOutCharset='utf-8') { if ($sInCharset === $sOutCharset) //字符集相同时不转换 return $mixd; if (is_array($mixd)) { $tmp = array(); foreach ($mixd as $key => $val) { $tmp[$key] = self::convert_encoding($sInCharset, $sOutCharset, $val); } return $tmp; } else { //字符集相同时不转换 return mb_convert_encoding($mixd, $sOutCharset, $sInCharset); } } }
使用的時候將裡面的幾個常數修改成你需要的參數,然後如下述用就能輸出標準的rss程式碼。
本程式使用 GBK的本機環境字元集,如果你的本機環境是UTF-8,請修改這個條碼 LOCAL_CHARSET = 'gbk';
/*测试用例*/ $aChannel = array('title'=>'每周精选','description'=>'二手车最新新闻','link'=>'http://www.chemao.com.cn/baike-gonglue.html'); $o = new CRssBuilder($aChannel); $aItem = array( 'title'=>'迎接Baby ,上车猫网甜蜜选购心仪POLO', 'link'=>'http://www.chemao.com.cn/baike/cwpolo.html', 'description'=>'我和老公相恋于大学,都是北方人。因为家里适合自己的就业机会少,毕业后两人一起来到杭州发展。拼搏了两年,去年7月我们终于结束了5年的爱情长跑,在西子湖畔与亲友一起见证了我们的爱情。', 'category'=>'每周精选', 'utc_timestemp'=>time() ); $o->addItems($aItem); $aItem = array( 'title'=>'为满足空间需求,买个二手MPV可还行!', 'link'=>'http://www.chemao.com.cn/baike/esmpv.html', 'description'=>'随着二胎政策与全民<strong>创业</strong>的逐步兴起,路面上跑的MPV越来越多,此类车型的强大用途已经让很多人爱不释手。而金九银十的到来不仅令新车优惠越来越大,二手车价格也在急剧跳水,这其中MPV的价格更是”一贬再贬“,对于想入手这类车型的网友来说,现在下手是绝好时机!下面,下面就为大家推荐几款二手车市场常见的热门MPV。', 'category'=>'每周精选', 'utc_timestemp'=>time() ); $o->addItems($aItem); echo $o->getSerialize();
以上就介紹了RSS 20 php生成類,快讀生成需要xml文件,包含了創業方面的內容,希望對PHP教學有興趣的朋友有幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅動程式:不相容的驅動程式可能會幹擾截圖工具。來自其他應用程式的干擾:其他正在運行的應用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導致此issu簡單的解決方案這些適合大多數用戶,不需要任何特殊的技術知識。 1.更新視窗與Microsoft應用程式商店應用程

第1部分:初始故障排除步驟檢查蘋果的系統狀態:在深入研究複雜的解決方案之前,讓我們先從基礎知識開始。問題可能不在於您的設備;蘋果的伺服器可能會關閉。造訪Apple的系統狀態頁面,查看AppStore是否正常運作。如果有問題,您所能做的就是等待Apple修復它。檢查您的網路連接:確保您擁有穩定的網路連接,因為「無法連接到AppStore」問題有時可歸因於連接不良。嘗試在Wi-Fi和行動數據之間切換或重置網路設定(「常規」>「重置」>「重置網路設定」>設定)。更新您的iOS版本:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

watch4pro和gt各自具有不使用的特點和適用場景,如果注重功能的全面性、高性能和時尚外觀,同時願意承擔較高的價格,那麼Watch 4 Pro可能更適合。如果對功能要求不高,更注重電池續航力和價格的合理性,那麼GT系列可能更適合。最終的選擇應根據個人需求、預算和喜好來決定,建議在購買前仔細考慮自己的需求,並參考各種產品的評測和比較,以做出更明智的選擇。

请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?http://127.0.0.1/myo/newuser.php?mod=search&type=fastone比如现在我要修改mod=new要怎么做呢?------解决方案--------------------发送了请求

如何使用iPadOS17.4优化iPad电池寿命延长电池续航时间是移动设备体验的关键,iPad是一个很好的例子。如果您觉得iPad电池消耗速度过快,不用担心,在iPadOS17.4中有许多技巧和调整可以显著延长设备的运行时间。本深入指南的目标不仅仅是提供信息,而是改变您使用iPad的方式,增强您的整体电池管理,并确保您可以在无需充电的情况下更长时间地依赖您的设备。通过采用此处概述的做法,您朝着更高效、更谨慎地使用技术迈出了一步,这些技术是根据您的个人需求和使用模式量身定制的。识别主要的能量消耗者

每個人都在期待今天的Windows1123H2發布。事實上,Microsoft剛剛啟動了發布預覽版的更新,這是正式發布階段之前最接近的頻道。被稱為Build22631的Microsoft表示,他們正在推出新的更名聊天應用程序,電話鏈接和一起玩小部件,這些小部件在過去幾個月中已在其他內部渠道中進行了測試。 「這個新的更新將具有與Windows11版本22H2相同的服務分支和程式碼庫,並將與所有新宣布的功能累積,包括Windows中的Copilot(預覽版),」Microsoft承諾。雷德蒙官員進一
