下面是具体步骤和示例说明:
下面是具体步骤和示例说明:
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
基础教程推荐
猜你喜欢
- php使用pthreads v3多线程实现抓取新浪新闻信息操作示例 2023-04-01
- php微信公众号开发之关键词回复 2022-11-23
- PHP strripos函数用法总结 2022-12-15
- Laravel5.4框架使用socialite实现github登录的方法 2022-12-30
- PHP学习的技巧和学习的要素总结 2023-03-19
- PHP操作Redis常用命令的实例详解 2023-05-09
- 分享PHP header函数使用教程 2024-01-17
- golang实现PHP数组特性的方法 2024-02-04
- Laravel中9个不经常用的小技巧汇总 2023-01-08
- thinkphp5实用入门进阶知识点和各种常用功能代码汇总 2023-07-11