php截取指定字符之间内容的类与实例(含转码、过滤html等)
来源:互联网 发布:西安网站关键词优化 编辑:程序博客网 时间:2024/05/16 11:22
像我这样的半拉子程序员,基本靠百度一下。基本是在前辈们的宝贵经验基础上,根据现在的需要进行整合、修改。因此首先鸣谢。声明:知识来源并不代表原创来源,只代表本人从该处找到该知识。
第一部分、基础知识点
1、一个php截取指定字符串之间的字符串的类
上述类的使用方法:
<?php
$get_c_str = new get_c_str;
echo $get_c_str -> get_str('[123456789]','[',']');
?>
2、过滤非必要的html代码:strip_tags()函数
用法:strip_tags($sjb,'<img><p>');
“()”的逗号前是要处理的字符串(可以是赋有字符串值的变量),逗号后是过滤时保留的html标签。如果不指定它,所有被处理字符串中的html标签将被全部清掉,只留下文字。
3、抓取到的内容(例如网页)编码与需要显示时不符时的处理。
如果抓到的内容和显示的页面编码不一致,会导致乱码,辛苦半天会很郁闷。找到处理方法如下:
a、把 GBK 编码字串转换成 UTF-8 编码字串
b、把 UTF-8 编码字串转换成 GB2312 编码字串
c、对整个页面 进行转换
该方法适用所有编码环境。把前128个字符以外(显示字符)的字符集都用 NCR (Numeric character reference,如“汉字”将转换成“&#27721;&#23383;”这种形式)来表示,这样的编码在任意编码环境下页面都能正常显示。
方法是在php文件的头部加上下面三行代码:
二、应用实例
本实例的目的是把某网页的某个部分抓取下来,处理成可以调用的变量,或更加符合使用要求的格式。
小结:上述实例中,直接将抓取过来并处理过的$sjb变量直接显示出来。实际运用中,可以在CMS模板等处调用这个变量。另外有心还可以对内容进行CSS格式化,以达到更好的显示效果。
本例由深达网站shawn原创,转载请注明出处。
第一部分、基础知识点
1、一个php截取指定字符串之间的字符串的类
<?phpclass get_c_str {var $str;var $start_str;var $end_str;var $start_pos;var $end_pos;var $c_str_l;var $contents;function get_str($str,$start_str,$end_str){ $this->str = $str; $this->start_str = $start_str; $this->end_str = $end_str; $this->start_pos = strpos($this->str,$this->start_str)+strlen($this->start_str); $this->end_pos = strpos($this->str,$this->end_str); $this->c_str_l = $this->end_pos - $this->start_pos; $this->contents = substr($this->str,$this->start_pos,$this->c_str_l); return $this->contents;}}?>赞叹高人,这么厉害的功能用短短几行代码就搞定。同时再次感谢奉献精神。
上述类的使用方法:
<?php
$get_c_str = new get_c_str;
echo $get_c_str -> get_str('[123456789]','[',']');
?>
2、过滤非必要的html代码:strip_tags()函数
用法:strip_tags($sjb,'<img><p>');
“()”的逗号前是要处理的字符串(可以是赋有字符串值的变量),逗号后是过滤时保留的html标签。如果不指定它,所有被处理字符串中的html标签将被全部清掉,只留下文字。
3、抓取到的内容(例如网页)编码与需要显示时不符时的处理。
如果抓到的内容和显示的页面编码不一致,会导致乱码,辛苦半天会很郁闷。找到处理方法如下:
a、把 GBK 编码字串转换成 UTF-8 编码字串
<?php header("content-Type: text/html; charset=Utf-8"); echo mb_convert_encoding("你是我的好朋友", "UTF-8", "GBK"); ?>
b、把 UTF-8 编码字串转换成 GB2312 编码字串
// 注意将此文件存盘成 utf-8 编码格式文件再测试 <?php header("content-Type: text/html; charset=gb2312"); echo mb_convert_encoding("你是我的好朋友", "gb312", "utf-8"); ?>*注意:使用mb_convert_encoding 函数需启用PHP 的mbstring (multi-byte string)扩展
c、对整个页面 进行转换
该方法适用所有编码环境。把前128个字符以外(显示字符)的字符集都用 NCR (Numeric character reference,如“汉字”将转换成“&#27721;&#23383;”这种形式)来表示,这样的编码在任意编码环境下页面都能正常显示。
方法是在php文件的头部加上下面三行代码:
<?phpmb_internal_encoding("gb2312"); // 这里的gb2312是你网站原来的编码 mb_http_output("HTML-ENTITIES"); ob_start('mb_output_handler'); ?>
二、应用实例
本实例的目的是把某网页的某个部分抓取下来,处理成可以调用的变量,或更加符合使用要求的格式。
<?//基本变量*获取数据源,可为网页,也可以是本地文本文件及网页$file_name="http://yn.weather.com.cn/lijiang/index.shtml";//截取函数class get_c_str {var $str;var $start_str;var $end_str;var $start_pos;var $end_pos;var $c_str_l;var $contents;function get_str($str,$start_str,$end_str){ $this->str = $str; $this->start_str = $start_str; $this->end_str = $end_str; $this->start_pos = strpos($this->str,$this->start_str)+strlen($this->start_str); $this->end_pos = strpos($this->str,$this->end_str); $this->c_str_l = $this->end_pos - $this->start_pos; $this->contents = substr($this->str,$this->start_pos,$this->c_str_l); return $this->contents;}}///////////////////读取$file_handle = fopen("$file_name", "r");while (!feof($file_handle)) { $line = fgets($file_handle); $sjb=$sjb.$line;}fclose($file_handle);//截取$get_c_str = new get_c_str;$sjb=$get_c_str -> get_str($sjb,'forecast">','margin-bottom');//去除非必要html$sjb=strip_tags($sjb,'<img><p>');//替换$sjb=str_replace('src="/','src="http://yn.weather.com.cn/',$sjb);//转码$sjb= mb_convert_encoding($sjb, "GBK", "UTF-8");echo $sjb;?>
小结:上述实例中,直接将抓取过来并处理过的$sjb变量直接显示出来。实际运用中,可以在CMS模板等处调用这个变量。另外有心还可以对内容进行CSS格式化,以达到更好的显示效果。
本例由深达网站shawn原创,转载请注明出处。
- php截取指定字符之间内容的类与实例(含转码、过滤html等)
- php截取指定字符之间内容的类与实例(含转码、过滤html等)
- 原创_php截取指定字符之间内容的类与实例(含转码、过滤html等)
- 截取指定长度的字符内容
- 一个php截取指定字符串之间的字符串的类
- 一个php截取指定字符串之间的字符串的类
- excel中如何截取指定字符之间的字符
- 截取//与/之间字符
- PHP截取两个指定字符中间的字符
- PHP html实体与字符之间的转换函数
- Linux截取文件指定行数之间的内容
- Java利用正则表达式截取指定字符串之间的内容
- 截取指定字符之间的数据(占位符)
- java截取2个指定字符之间的字符串
- QT中QString 类的使用--获取指定字符位置、截取子字符串等
- QT中QString 类的使用--获取指定字符位置、截取子字符串等
- QT中QString 类的使用--获取指定字符位置、截取子字符串等
- QT中QString 类的使用--获取指定字符位置、截取子字符串等
- 一个php截取指定字符串之间的字符串的类
- itext生成发票套打
- 编程计算表达式:6 5 2 3 + 8 * + 3 + * 的结果
- javascript实现页面跳转的几种方式
- itext使用模板生成pdf文件
- php截取指定字符之间内容的类与实例(含转码、过滤html等)
- 半边数据结构
- Hierarchy Viewer 帮你分析应用程序UI布局
- IT笔试的排序和查找(基础知识)
- 敏捷测试的思考和新发展
- 新做的页面框架
- 软件测试常用术语表
- ubuntu10.10 Qt creater安装 亲测可用(转)
- ZOJ3432 Find the Lost Sock,异或运算