一个php文本采集类

php中文网
发布: 2016-07-25 09:07:16
原创
980人浏览过
  1. $C = new Collection();
  2. $C->url = 'http://bbs.it-home.org/subject_search?cat=1001&search_text=%E5%B9%B4%E8%BD%BB%E4%BA%BA';
  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. 模块名:php文本采集类
  3. **/
  4. class collection{
  5. //入口 公有
  6. var $url; //欲分析的url地址
  7. var $content; //读取到的内容
  8. var $regexp; //要获取部分的正则表达式
  9. var $codefrom; //原文的编码
  10. var $codeto; //欲转换的编码
  11. var $timeout; //采集等待的时间
  12. var $startFlag; //文章开始采集的标志 默认为0 在进行采集条目时,只对$startFlag 和 $endFlag之间的文字块进行搜索和采集。

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

    集简云
    集简云

    软件集成平台,快速建立企业自动化与智能化

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


PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号