php使用正则表达式获取字符串中的URL


Posted in PHP onDecember 29, 2016

今天写一个问答系统上线之后发现有很多人发链接了,由于业务部门要我们过滤掉网站地址了,下面我给大家分享一个提取字符串url地址函数,代码如下:

$str ='本文实例讲述了php匹配字符串里所有URL地址的方法。http://www.manongjc.com 分享给大家供大家参考'; 
 preg_match_all("/http:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*/",$str,$array2); 
print_r($array2);

运行结果为:

( 
  [0] => Array 
    ( 
      [0] => http://www.manongjc.com 
    ) 
)

这里主要使用到preg_match_all函数,该函数具体使用方法如下:

preg_match_all — 进行全局正则表达式匹配

语法:

int preg_match_all ( string pattern, string subject, array matches [, int flags] )

在 subject 中搜索所有与 pattern 给出的正则表达式匹配的内容并将结果以 flags 指定的顺序放到 matches 中。
搜索到第一个匹配项之后,接下来的搜索从上一个匹配项末尾开始。

特别注意PREG_PATTERN_ORDER 和PREG_SET_ORDER

flags 可以是下列标记的组合(注意把 PREG_PATTERN_ORDER 和 PREG_SET_ORDER 合起来用没有意义):

如果使用PREG_PATTERN_ORDER

对结果排序使 $matches[0] 为全部模式匹配的数组,$matches[1] 为第一个括号中的子模式所匹配的字符串组成的数组,以此类推。(即$matches[0] [0]为全部模式匹配中的每一项,$matches[0] [1]为全部模式匹配中的第二项,$matches[1] [0]为匹配每一个括号中的第一项,$matches[1] [0]为匹配每一个括号中的第二项)

<?php 
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U","<b>example: </b><div align=left>this is a test</div>",$out, PREG_PATTERN_ORDER);
/* http://www.manongjc.com/article/1591.html */
print $out[0][0].", ".$out[0][1]."\n"; 
print $out[1][0].", ".$out[1][1]."\n"; 
?>

输出结果:

<b>example: </b>, <div align=left>this is a test</div> 
example: , this is a test
PHP 相关文章推荐
ThinkPHP采用模块和操作分析
Apr 18 PHP
php学习之变量的使用
May 29 PHP
php session_start()出错原因分析及解决方法
Oct 28 PHP
生成随机字符串和验证码的类的PHP实例
Dec 24 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
php基于curl实现的股票信息查询类实例
Nov 11 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
Oct 17 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
Nov 30 PHP
简单实用的PHP文本缓存类实例
Mar 22 PHP
php基于协程实现异步的方法分析
Jul 17 PHP
php实现水印文字和缩略图的方法示例
Dec 29 #PHP
PHPMailer发送邮件
Dec 28 #PHP
PHP实现简单ajax Loading加载功能示例
Dec 28 #PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
Dec 28 #PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 #PHP
PHP MYSQL简易交互式站点开发
Dec 27 #PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 #PHP
You might like
PHP静态新闻列表自动生成代码
2007/06/14 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
Node.js的特点详解
2017/02/03 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
Python中的引用和拷贝浅析
2014/11/22 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
2018/06/11 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
python实现二维插值的三维显示
2018/12/17 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
python移位运算的实现
2019/07/15 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
10的分与合教学反思
2014/04/30 职场文书
环保小标语
2014/06/13 职场文书
查摆剖析材料范文
2014/09/30 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
Python字符串常规操作小结
2022/04/03 Python