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 相关文章推荐
php获得文件扩展名三法
Nov 25 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
Sep 15 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
Jul 31 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
Nov 22 PHP
php递归删除目录与文件的方法
Jan 30 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 PHP
[原创]php正则删除img标签的方法示例
May 27 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 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中实现记住密码自动登录的代码
2011/03/02 PHP
php 文件上传实例代码
2012/04/19 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
jquery 学习之二 属性(类)
2010/11/25 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
2015/11/09 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
vue实例的选项总结
2020/06/09 Javascript
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
Python lambda函数基本用法实例分析
2018/03/16 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
Python中if有多个条件处理方法
2020/02/26 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
python将unicode和str互相转化的实现
2020/05/11 Python
解决keras使用cov1D函数的输入问题
2020/06/29 Python
python如何删除列为空的行
2020/07/17 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
工程招投标邀请书
2014/01/30 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
微信小程序和php的登录实现
2021/04/01 PHP
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
vue router 动态路由清除方式
2022/05/25 Vue.js
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android