PHP 텍스트 컬렉션 클래스

WBOY
풀어 주다: 2016-07-25 09:07:16
원래의
840명이 탐색했습니다.
  1. $C = new Collection();
  2. $C->url = 'http://bbs.it-home.org/subject_search?cat=1001&search_text=年轻人';
  3. $C->startFlag = '

    ';
  4. $C->endFlag = '
    ';
  5. $C->init();
  6. $C->regExp = "|

    (.*)

    |Uis";
  7. $C->parse();
  8. print_rr($C->result);
  9. */
复制代码

php文本采集类文件:

  1. <%

  2. /**
  3. 模块名:php文本采集类
  4. **/
  5. class Collection{
  6. //入口 公有
  7. var $url; //欲分析的url地址
  8. var $content; //读取到的内容
  9. var $regExp; //要获取部分的正则表达式
  10. var $codeFrom; //原文的编码
  11. var $codeTo; //欲转换的编码
  12. var $timeout; //采集等待的时间

  13. var $startFlag; //文章开始采集的标志 默认为0 在进行采集条目时,只对$startFlag 和 $endFlag之间的文字块进行搜索和采集。

  14. var $endFlag; //文章结束采集的标志 默认为文章末尾 在进行采集条目时,只对$startFlag 和 $endFlag之间的文字块进行搜索和采集。
  15. var $block; //$startFlag 和 $endFlag之间的文字块
  16. //出口 私有
  17. var $result; //输出结果

  18. //初始化收集器

  19. function init(){
  20. if(empty($url))
  21. $this->getFile();
  22. $this->convertEncoding();
  23. }
  24. //采集所需内容
  25. function parse(){
  26. $this->getBlock();
  27. preg_match_all($this->regExp, $this->block ,$this->result,PREG_SET_ORDER);
  28. return $this->block;
  29. }
  30. //错误处理
  31. function error($msg){
  32. echo $msg;
  33. }
  34. //读取远程网页 如果成功,传回文件;如果失败传回false
  35. function getFile(){
  36. $datalines = @file($this->url);
  37. if(!$datalines){
  38. $this->error("can't read the url:".$this->url);
  39. return false;
  40. } else {
  41. $importdata = implode('', $datalines);
  42. $importdata = str_replace(array ("rn", "r"), "n", $importdata);
  43. $this->content = $importdata;
  44. }
  45. }
  46. //获取所需要的文字块
  47. function getBlock(){
  48. if(!empty($this->startFlag))
  49. $this->block = substr($this->content,strpos($this->content,$this->startFlag));
  50. if(!empty($this->endFlag))
  51. $this->block = substr($this->block,0,strpos($this->block,$this->endFlag));
  52. }
  53. //内容编码的转换
  54. function convertEncoding(){
  55. if(!empty($this->codeTo))
  56. $this->codeFrom = mb_detect_encoding($this->content);
  57. //如果给定转换方案,才执行转换。
  58. if(!empty($this->codeTo))
  59. $this->content = mb_convert_encoding($this->content,$this->codeTo,$this->codeFrom) or $this->error("can't convert Encoding");
  60. }
  61. }//end of class
  62. ?>

复制代码


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!