PHP 正则表达式分析RSS
时间:2022-01-20 00:08:35|来源:网络精心整理
这篇文章主要讲解的是PHP 正则表达式分析RSS,文章内容非常详细,相信一定可以解决你的问题,需要的朋友可以参考下哦
复制代码 代码如下:
$xmlfile = 'news/'.date('YmdH').'.xml';
$sourcexml = 'http://www.chinanews.com.cn/rss/scroll-news.xml';
if( !file_exists($xmlfile) ) {
$str = @file($sourcexml) or die('加载文件时出错。');
$fp = fopen($xmlfile,'w') or die('写缓存失败!');
fputs($fp,$str);
fclose($fp);
然后用simplexml读取并输出HTML
复制代码 代码如下:
$xml = simplexml_load_file($xmlfile);
$c = $xml->channel;
$k = 0;
foreach($c->item as $v) {
$k ++;
echo "
<div class=\"newsline\">·<a title=\"$v->title\" href=\"$v->link\" target=\"_blank\">$v->title</a></div>
";
后来遇到了一个问题,就是RSS中经常包含有一些GBK的繁体字。google了很多字符集转换方面的文章。得出一个解法:
复制代码 代码如下:
$str = mb_convert_encoding( join('',$str), "gb2312", "GBK");
这个方法并不能繁体转为简体,会转成一个乱码,但至少能保证simplexml_load_file($xmlfile)执行成功。因为这些繁体字通常出现在描述里
,暂且接受。
再后来遇到另一个问题,描述里出现了形如“中新网12月30日电(闻育e?”的乱码,simplexml_load_file失败。
至此考虑用正则表达式获取标题和链接。(有文章说正则表达式效率可能更好,以后再验证)
代码如下:
复制代码 代码如下:
$fp = fopen($xmlfile,'r');
if($fp)
{
$data = fread($fp,filesize($xmlfile));
fclose($fp);
preg_match_all(
"/<item><title>(.*?)<\/title><link>(.*?)<\/link>/i",$data,$out,PREG_SET_ORDER);
foreach($out as $key => $v)
{
$v[1] = iconv('gbk','utf-8',$v[1]);
echo "
<div class=\"newsline\">·<a title=\"$v[1]\" href=\"$v[2]\" target=\"_blank\">$v[1]</a></div>
";
}
}
本文标题:PHP 正则表达式分析RSS
本文地址:https://www.tabangni.com/zhengze/15357.html
查看更多与“RSS正则表达式PHP”有关的文章
- 01-17PHP中基本符号及使用方法
- 01-19PHP count_chars()函数讲解
- 01-17PHP hex2bin()函数用法讲解
- 01-16PHP implode()函数用法讲解
- 01-15PHP lcfirst()函数定义与用法
- 01-15PHP join()函数用法与实例讲解
- 01-19PHP中quotemeta()函数的用法讲解
- 01-18PHP中number_format()函数的用法讲解
- 01-18PHP中str_split()函数的用法讲解
- 01-17一个正则的写法 php
- 01-16php 正则表达式学习笔记
- 01-17php下常用表单验证的正则表达式
- 01-16PHP 正则表达式验证中文的问题
- 01-18php中utf-8编码下用正则表达式如何匹配汉字
- 01-16PHP正则匹配图片并给图片加链接详解
- 01-17PHP 正则表达式的几则使用技巧
- 01-18PHP 正则表达式常用函数使用小结
- 01-18php 正则 不包含某字符串的正则表达式
- 01-18PHP 正则 email语句详解
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
推荐阅读
最近更新
- 01-20PHP 正则表达式分析RSS
- 01-20技术员研习微信小程序的授权实现过程解析
- 01-20centos 6.3 最小安装系统下快速搭建环境步骤分享
- 01-20如何在smarty中增加类似foreach的功能自动加载数据
- 01-20Ajax+PHP快速上手及简单应用说明
- 01-20C# 生转换网页为pdf
- 01-20Asp.NET生成各种网页快捷方式的代码(桌面url快捷方式,收藏夹/开始菜单快捷方式)
- 01-20jQuery+PHP实现的掷色子抽奖游戏实例
- 01-20站长说明javascript字典探测用户名工具
- 01-20小白指导JavaScript格式化数字的函数代码
