下面是具体步骤和示例说明:
下面是具体步骤和示例说明:
1. 利用PHP内置函数获取HTML字符串
在使用正则表达式前,我们需要先获取HTML字符串。可以使用PHP内置的函数,如file_get_contents或curl等。
$htmlStr = file_get_contents('http://www.example.com');
2. 构建正则表达式
构建正则表达式是本次攻略的重点,因为不同的网页结构有不同的标记和规则。
以下是一个基本的URL匹配正则表达式示例:
preg_match_all('/(http[s]?:\/\/[^\s]*)/i', $htmlStr, $match);
该正则表达式的含义是:匹配以http或https协议开头的URL。
3. 执行正则匹配
接下来,我们使用preg_match_all函数执行正则匹配。
preg_match_all('/(http[s]?:\/\/[^\s]*)/i', $htmlStr, $match);
函数的第一个参数是正则表达式,第二个参数是待匹配的文本,第三个参数是匹配结果数组。上述代码执行后,$match会返回一个二维数组,包含了所有匹配到的URL。
4. 获取匹配结果
我们可以使用foreach循环遍历$match数组,获取所有匹配到的URL。
foreach($match[0] as $url) {
echo $url . "<br/>";
}
示例说明
以下是一个示例:使用php获取一篇博客的HTML字符串,然后提取其中的所有图片链接。
// 获取博客HTML字符串
$htmlStr = file_get_contents('https://www.example.com/blog/123');
// 构建匹配图片链接的正则表达式
preg_match_all('/<img.*?src="(.*?)".*?>/is', $htmlStr, $match);
// 遍历所有匹配结果,输出链接
foreach($match[1] as $imgUrl) {
echo $imgUrl . "<br/>";
}
以下是另一个示例:使用php获取一个网站的HTML字符串,然后提取其中的所有外部链接。
// 获取网站HTML字符串
$htmlStr = file_get_contents('https://www.example.com');
// 构建匹配外部链接的正则表达式
preg_match_all('/(http[s]?:\/\/[^\s]*)/i', $htmlStr, $match);
// 遍历所有匹配结果,输出链接
foreach($match[0] as $url) {
echo $url . "<br/>";
}
以上就是使用php正则表达式获取字符串中URL的完整攻略。
编程基础网
本文标题为:php使用正则表达式获取字符串中的URL
基础教程推荐
猜你喜欢
- laravel 使用auth编写登录的方法 2023-02-21
- ThinkPHP6通过Ucenter实现注册登录的示例代码 2023-05-08
- Laravel程序架构设计思路之使用动作类 2022-10-27
- Laravel jwt 多表(多用户端)验证隔离的实现 2023-03-18
- 图文详解PHP中GC回收机制的利用 2023-06-26
- PHP 查找字符串常用函数介绍 2023-12-25
- PHP+Ajax实现的检测用户名功能简单示例 2022-12-18
- PHP使用自定义key实现对数据加密解密的方法 2022-10-02
- php传值和传引用的区别点总结 2023-03-12
- 关于PHP方法参数的那一些事 2023-05-09
