PHP 텍스트 컬렉션 클래스
풀어 주다: 2016-07-25 09:07:16
-
- $C = new Collection();
- $C->url = 'http://bbs.it-home.org/subject_search?cat=1001&search_text=年轻人';
- $C->startFlag = '';
- $C->endFlag = '
';
- $C->init();
- $C->regExp = "|
(.*) |Uis";
- $C->parse();
- print_rr($C->result);
- */
复制代码
php文本采集类文件:
-
-
<%
- /**
- 模块名:php文本采集类
- **/
- class Collection{
- //入口 公有
- var $url; //欲分析的url地址
- var $content; //读取到的内容
- var $regExp; //要获取部分的正则表达式
- var $codeFrom; //原文的编码
- var $codeTo; //欲转换的编码
- var $timeout; //采集等待的时间
var $startFlag; //文章开始采集的标志 默认为0 在进行采集条目时,只对$startFlag 和 $endFlag之间的文字块进行搜索和采集。
- var $endFlag; //文章结束采集的标志 默认为文章末尾 在进行采集条目时,只对$startFlag 和 $endFlag之间的文字块进行搜索和采集。
- var $block; //$startFlag 和 $endFlag之间的文字块
- //出口 私有
- var $result; //输出结果
//初始化收集器
- function init(){
- if(empty($url))
- $this->getFile();
- $this->convertEncoding();
- }
- //采集所需内容
- function parse(){
- $this->getBlock();
- preg_match_all($this->regExp, $this->block ,$this->result,PREG_SET_ORDER);
- return $this->block;
- }
- //错误处理
- function error($msg){
- echo $msg;
- }
- //读取远程网页 如果成功,传回文件;如果失败传回false
- function getFile(){
- $datalines = @file($this->url);
- if(!$datalines){
- $this->error("can't read the url:".$this->url);
- return false;
- } else {
- $importdata = implode('', $datalines);
- $importdata = str_replace(array ("rn", "r"), "n", $importdata);
- $this->content = $importdata;
- }
- }
- //获取所需要的文字块
- function getBlock(){
- if(!empty($this->startFlag))
- $this->block = substr($this->content,strpos($this->content,$this->startFlag));
- if(!empty($this->endFlag))
- $this->block = substr($this->block,0,strpos($this->block,$this->endFlag));
- }
- //内容编码的转换
- function convertEncoding(){
- if(!empty($this->codeTo))
- $this->codeFrom = mb_detect_encoding($this->content);
- //如果给定转换方案,才执行转换。
- if(!empty($this->codeTo))
- $this->content = mb_convert_encoding($this->content,$this->codeTo,$this->codeFrom) or $this->error("can't convert Encoding");
- }
- }//end of class
- ?>
-
复制代码
|
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31