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调用Java对象的方法
Oct 09 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
PHP 时间转换Unix时间戳代码
Jan 22 PHP
php checkdate、getdate等日期时间函数操作详解
Mar 11 PHP
教你如何快捷的使用cmd访问mysql小技巧
May 26 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
Jul 01 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
php实现的通用图片处理类
Mar 24 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
Yii redis集合的基本使用教程
Jun 14 PHP
Laravel中Kafka的使用详解
Mar 24 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
基于Zookeeper的使用详解
2013/05/02 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
2016/12/02 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
详解Python中的日志模块logging
2015/06/19 Python
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
听歌识曲--用python实现一个音乐检索器的功能
2016/11/15 Python
Django之模型层多表操作的实现
2019/01/08 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
谈谈Python中的while循环语句
2019/03/10 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
python statsmodel的使用
2020/12/21 Python
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
培训通知
2015/04/17 职场文书
利用Python实现模拟登录知乎
2022/05/25 Python