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

发布时间 - 2026-01-10 22:11:12    点击率:

今天写一个问答系统上线之后发现有很多人发链接了,由于业务部门要我们过滤掉网站地址了,下面我给大家分享一个提取字符串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使用正则表达式获取字符串中的URL  # php使用正则表达式获取字符串中的URL实例详解  # PHP基于CURL发送JSON格式字符串的方法示例  # PHP使用http_build_query()构造URL字符串的方法  # php解析字符串里所有URL地址的方法  # php提取字符串中网站url地址的方法  # PHP安全的URL字符串base64编码和解码  # PHP检查URL包含特定字符串实例方法  # 第一个  # 有很多  # 以此类推  # 要我  # 给大家  # 并将  # 我给  # 正则表达式  # 到第  # 人发  # 来用  # 方法如下  # 每一项  # 业务部门  # 过滤掉  # 讲述了  # 第一项  # www  # Za  # preg_match_all 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: java ZXing生成二维码及条码实例分享  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  如何用AWS免费套餐快速搭建高效网站?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  微信小程序 scroll-view组件实现列表页实例代码  Laravel如何实现文件上传和存储?(本地与S3配置)  如何快速搭建高效可靠的建站解决方案?  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  在centOS 7安装mysql 5.7的详细教程  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  如何在阿里云完成域名注册与建站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  晋江文学城电脑版官网 晋江文学城网页版直接进入  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  如何基于云服务器快速搭建个人网站?  如何在IIS7中新建站点?详细步骤解析  使用spring连接及操作mongodb3.0实例  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  PythonWeb开发入门教程_Flask快速构建Web应用  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何安全更换建站之星模板并保留数据?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何在腾讯云免费申请建站?  javascript基于原型链的继承及call和apply函数用法分析  如何快速生成凡客建站的专业级图册?  Linux系统运维自动化项目教程_Ansible批量管理实战  Laravel如何生成API文档?(Swagger/OpenAPI教程)  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  大型企业网站制作流程,做网站需要注册公司吗?  网站制作免费,什么网站能看正片电影?  移动端脚本框架Hammer.js  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel如何使用Sanctum进行API认证?(SPA实战)  javascript读取文本节点方法小结  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Bootstrap CSS布局之列表  如何实现建站之星域名转发设置?  ,怎么在广州志愿者网站注册?  长沙企业网站制作哪家好,长沙水业集团官方网站?  在Oracle关闭情况下如何修改spfile的参数  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  香港服务器如何优化才能显著提升网站加载速度?