在simple_html_dom.php文件里面,有一个load()函数的定义。

// load html from string

function load($str, $lowercase=true, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)

{

global $debugObject;

// prepare

$this->prepare($str, $lowercase, $stripRN, $defaultBRText, $defaultSpanText);

// strip out comments

$this->remove_noise("''is");

// strip out cdata

$this->remove_noise("''is", true);

// Per sourceforge http://sourceforge.net/tracker/?func=detail&aid=2949097&group_id=218559&atid=1044037

// Script tags removal now preceeds style tag removal.

// strip out

$this->remove_noise("'<\s*script[^>]*[^/]>(.*?)<\s*/\s*script\s*>'is");

$this->remove_noise("'<\s*script\s*>(.*?)<\s*/\s*script\s*>'is");

// strip out

$this->remove_noise("'<\s*style[^>]*[^/]>(.*?)<\s*/\s*style\s*>'is");

$this->remove_noise("'<\s*style\s*>(.*?)<\s*/\s*style\s*>'is");

// strip out preformatted tags

$this->remove_noise("'<\s*(?:code)[^>]*>(.*?)<\s*/\s*(?:code)\s*>'is");

// strip out server side scripts

$this->remove_noise("'(<\?)(.*?)(\?>)'s", true);

// strip smarty scripts

$this->remove_noise("'(\{\w)(.*?)(\})'s", true);

// parsing

while ($this->parse());

// end

$this->root->_[HDOM_INFO_END] = $this->cursor;

$this->parse_charset();

// make load function chainable

return $this;

}

注意到这里,上面的一个函数通过正则表达式去掉了标签内部的函数。如果,我们要抓取内部的内部的内容的时候,就不能再利用框架了。

对比,我们的系统框架b2core内部也有一个加载系统的文件或类的函数load()

/* B2 系统函数

* load($path,$instantiate) 可以动态载入对象,如:控制器、Model、库类等

* $path 是类文件相对 app 的地址

* $instantiate 为 False 时,仅引用文件,不实例化对象

* $instantiate 为数组时,数组内容会作为参数传递给对象

*/

function &load($path, $instantiate = TRUE )

{

$param = FALSE;

if(is_array($instantiate)) {

$param = $instantiate;

$instantiate = TRUE;

}

$file = explode('/',$path);

$class_name = array_pop($file);

$object_name = md5($path);

static $objects = array();

if (isset($objects[$object_name])) {

if($objects[$object_name] == TRUE && $instantiate == TRUE) {

if ($param == FALSE) return new $class_name();

return new $class_name($param);

}

return $objects[$object_name];

}

require(APP.$path.'.php');

if ($instantiate == FALSE) $objects[$object_name] = TRUE;

elseif ($param) $objects[$object_name] = new $class_name($param);

else $objects[$object_name] = new $class_name();

return $objects[$object_name];

}

html引入php文件中的函数,在b2core框架和simple_html_dom.php文件里面都有一个load()函数...相关推荐

  1. python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。...

    [单选题]李明在他所属的公司工作五年,每天都很认真地处理繁杂的事情,同事们都夸他认真,但是依然没有建树,这是因为: [多选题]品牌标志的作用表现在 [单选题]新产品开发的第一个阶段是_______. ...

  2. python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。(4.0分)_学小易找答案...

    [单选题]文本文件存储的是(),由若干文本行组成,通常每行以换行符 '\n' 结尾.(4.0分) [单选题]()属性是返回被打开文件的访问模式.(4.0分) [单选题]重力坝是由砼或( )修筑而成的大 ...

  3. R语言:从 csv 文件中读取数据,然后将数据写入 csv 文件

    在 R 中,我们可以从存储在 R 环境外部的文件读取数据.我们还可以将数据写入将由操作系统存储和访问的文件中.R可以读取和写入各种文件格式,如csv,excel,xml等. 在本章中,我们将学习从 c ...

  4. 【python学习】批量读取Materials Studio的sdf文件,从文件中提取特定信息并按列存储在CSV文件

    批量读取Materials Studio的sdf文件,从文件中提取特定信息并按列存储在CSV文件 Materials Studio在执行dmol3模块中结构优化任务时,任务结束后会产生一系列的输出文件 ...

  5. java图的建立field_《Java虚拟机原理图解》1.4 class文件中的字段表集合--field字段在class文件中是怎样组织的...

    0.前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路.但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述 ...

  6. 使用Python批量筛选上千个Excel文件中的某一行数据并另存为新Excel文件(下篇)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 野火烧不尽,春风吹又生. 大家好, ...

  7. 【正则表达式高级day01】正则表达式概述+在一个文件中,查找出itcast开头的语句+在一个文件中,找到含有itcast的语句+在一个文件中,找到邮箱为163或者126的所有邮件地址

    文章目录 正则表达式概述 思考 场景1:在一个文件中,查找出itcast开头的语句 场景:在一个文件中,找到含有itcast的语句 场景:在一个文件中,找到邮箱为163或者126的所有邮件地址 正则表 ...

  8. 编写一个C程序,实现以下功能:用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:int strcmp(char *p1,char *p2);设p1指向字符串s

    题目描述: 编写一个C程序,实现以下功能: 用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为: int strcmp(char *p1,char *p2); 设p1指向字符串s ...

  9. VScode中html怎么引入js,vscode中如何使用typescript,如何自动编译成js文件

    使用vscode创建一个typescript程序 1:介绍 typescript是一个跨平台的编程语言,专门用于前端的语言,是由微软开发,在2013年6月正式发布,它是javascript的超集,扩展 ...

最新文章

  1. elasticsearch使用指南之Elasticsearch Document Index API详解、原理与示例
  2. php如何返回数据请求数据格式化,PHP以json或xml数据格式返回请求数据的封装代码...
  3. GMM(Gaussian mixture model, 高斯混合模型)
  4. wxwidget编译安装_wxWidgets编译安装方法 | 学步园
  5. hexo 环境变量_小白使用 Github + Hexo 从 0 搭建一个博客
  6. css clearfix_如何使用CSS清除浮点数(clearfix)?
  7. SQLi LABS Less-39
  8. string的各种函数(系统学习)
  9. Jquery事件委托之Safari
  10. Linux怎么查看编译ARM平台程序的编译器arm-linux-gcc
  11. mac os nginx php mysql
  12. OpenDrive格式的高精度地图
  13. 获取p12证书详情,返回证书详情实体
  14. IDEA SpringBoot引入外部jar并打包
  15. 应届生Java后台开发面试整理(含答案,不定期更新)
  16. 直流电源EMI滤波器的设计
  17. SIFT算法原理(2)-极值点的精确定位
  18. OpenMAX编程-音视频等组件介绍
  19. 物联网安全问题与对策
  20. R语言中的countif——dplyr包中的filter函数和nrow

热门文章

  1. 张量功率谱CAMB参数调试
  2. 云上人第七代产品简单的代码
  3. 牛客华为机试第8题python
  4. matplotlib显示中文钥匙
  5. MySQL自带工具使用介绍
  6. Jmeter JDBC执行多条SQL
  7. Qcon大会归来(r12笔记第36天)
  8. 痛并快乐的造轮子之旅:awk访问数据库之旅
  9. C#数组排序(按列)
  10. WEB文件管理器2.0版