[email protected]

image:

Grep.class.php

/** grep class

* Date: 2013-06-15

* Author: fdipzone

* Ver: 1.0

*

* Func:

*

* set: 设置内容

* get: 返回指定的内容

* replace: 返回替换后的内容

* get_pattern 根据type返回pattern

*/

class Grep{ // class start

private $_pattern = array(

‘url‘ => ‘/

‘email‘ => ‘/([\w\-\.]+@[\w\-\.]+(\.\w+))/‘,

‘image‘ => ‘//i‘

);

private $_content = ‘‘; // 源内容

/* 設置搜尋的內容

* @param String $content

*/

public function set($content=‘‘){

$this->_content = $content;

}

/* 获取指定内容

* @param String $type

* @param int $unique 0:all 1:unique

* @return Array

*/

public function get($type=‘‘, $unique=0){

$type = strtolower($type);

if($this->_content==‘‘ || !in_array($type, array_keys($this->_pattern))){

return array();

}

$pattern = $this->get_pattern($type); // 获取pattern

preg_match_all($pattern, $this->_content, $matches);

return isset($matches[1])? ( $unique==0? $matches[1] : array_unique($matches[1]) ) : array();

}

/* 获取替换后的内容

* @param String $type

* @param String $callback

* @return String

*/

public function replace($type=‘‘, $callback=‘‘){

$type = strtolower($type);

if($this->_content==‘‘ || !in_array($type, array_keys($this->_pattern)) || $callback==‘‘){

return $this->_content;

}

$pattern = $this->get_pattern($type);

return preg_replace_callback($pattern, $callback, $this->_content);

}

/* 根据type获取pattern

* @param String $type

* @return String

*/

private function get_pattern($type){

return $this->_pattern[$type];

}

} // class end

?>

Demo

header(‘content-type:text/htm;charset=utf8‘);

require(‘Grep.class.php‘);

$content = file_get_contents(‘http://www.test.com/‘);

$obj = new Grep();

$obj->set($content);

$url = $obj->get(‘url‘, 0);

$email = $obj->get(‘email‘, 1);

$image = $obj->get(‘image‘, 1);

print_r($url);

print_r($email);

print_r($image);

$url_new = $obj->replace(‘url‘, ‘replace_url‘);

echo $url_new;

function replace_url($matches){

return isset($matches[1])? ‘[url]‘.$matches[1].‘[/url]‘ : ‘‘;

}

?>

原文:http://www.jb51.net/article/46147.htm

php获取页面中的指定内容,php 获取页面中指定内容的实现类相关推荐

  1. RecyclerView滚动指定条目并在页面中居中

    RecyclerView滚动指定条目并在页面中居中 内容提要 本次的需求是通过指定position来控制条目滚动,并且要滚动到指定到中间的位置. 下面先上图,看看是不是你要 如下介绍主要的步骤 带着问 ...

  2. java8生成jsp页面内容组装到jsp中_JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...

    接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...

  3. div中内容靠右_python读取excel的公司名称信息,并爬虫获取公司的经营范围信息,回填到excel中...

    大家总说,python今天学明天忘,没有实际操作,想要知道哪里有练手的机会.其实你要善于发现问题,捕捉问题.不管是你看到文章中的一些案例,还是微信群友问的一个问题.你都需要仔细思考,如果是你做你应该怎 ...

  4. oracle怎么从大字段中取节点,Oracle数据库 获取CLOB字段存储的xml格式字符串指定节点的值...

    参照: Oracle存储过程中使用游标来批量解析CLOB字段里面的xml字符串 背景:在写存储过程时,需要获取表单提交的信息.表单信息是以xml格式的字符串存储在colb类型的字段dataxml中,如 ...

  5. jquery获取加载的html内容,jquery 获取ajax加载的html中部分内容

    最近在用wordpress开发企业主题的过程中,遇到不少客户都要求用ajax解决提交留言,在查找了很多资料的情况下,最终我决定手工改进,以不影响后续系统升级. 在做得过程中,我发现这个form的返回值 ...

  6. jsoup 获取html中body内容_JSOUP获取资源

    Java爬虫背景:工作当中多多少少需要从互联中获取一些信息,听得最多的爬虫语言是python,但为了爬一些信息,重新投入学习它,有点得不偿失.Java也可以是实现信息的爬去,这里主要介绍并总结JSOU ...

  7. layui table数据表格中数据返回成功,但页面不显示数据内容问题

    layui table数据表格中数据返回成功,但页面不显示数据内容问题. 这是我做毕业设计的时候自己遇到的问题,后来查看了网上的一些技术贴子而得到解决,所以便想总结一个大概的方法,供大家参考! 一般导 ...

  8. 怎么将 Excel 中的第一个工作表或者其它指定的工作表批量替换成新的内容?

    概要:在我们日常办公中,经常会碰到需要替换 Excel 中的某一个 Sheet 或者某几个 Sheet 的功能,「我的ABC软件工具箱」就实现了批量替换指定 Sheet 的功能,可以轻松实现对 Exc ...

  9. 怎样使微信中打开链接自动打开外部浏览器打开指定URL页面或者直接下载APP(安卓/苹果)文件

    最近很多朋友在使用微信分享转发网页链接的时候,都很容易碰到链接在微信中无法打开的问题.通常这种情况微信会给个提示 "已停止访问该网址" ,那么导致这个情况的因素有哪些呢,主要有以下 ...

最新文章

  1. 小工匠聊架构-超高并发秒杀系统设计 02_数据的动静分离
  2. php首页遍历出商品详情页,ECSHOP首页/分类页/详情页各页面调用显示销量
  3. 计算机单招语文试题,2019年高职单招语文模拟试题
  4. python安装robotframework报错_Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
  5. 使用Dom4j进行XML解析
  6. Linux——tmux和vim常用命令总结(必会)
  7. 从学生到专家,C语言开发必读的8本书
  8. x,y直角坐标系转经纬度WGS-84坐标系
  9. codevs2822 爱在心中(tarjan求缩点的度)
  10. 三相全桥整流电路_什么是三相桥式全控整流电路,三相桥式全控的工作原理是什么,三相桥式全控电路电路图...
  11. 29-SpringBoot 安全与SpringSecurity
  12. 三阶及四阶Runge-Kutta法
  13. 学习Maya学习MayaArnoldArnold
  14. chart.js 参数说明
  15. OA项目16:初始化权限数据
  16. 2012 VDI环境下,实现WIN7/ThinPC客户端自动配置RemoteAPP和桌面连接
  17. 用 Python 验证股神巴菲特的投资经验
  18. 制作PDF文件的软件
  19. 亚马逊云计算服务有什么特色?
  20. 软件测试最终测试由谁执行,高效的测试执行力

热门文章

  1. django使用LDAP验证
  2. Android Bundle类别
  3. WebApi系列~自主宿主HttpSelfHost的实现
  4. UNIX-LINUX编程实践教程-第三章-实例代码注解-ls2
  5. Castle学习之一:安装与环境设置
  6. mapperLocations属性通配符的使用
  7. 查看db2数据库名linux,【名说】DB2数据库备份与恢复(linux环境)
  8. [转载] Java中的字符串处理
  9. 给定重量上限,背包问题_满足给定重量的袋子的最低成本
  10. 多线程循环输出abcc++_C ++循环| 查找输出程序| 套装5