下面是具体步骤和示例说明:
下面是具体步骤和示例说明:
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
猜你喜欢
- Thinkphp 框架配置操作之配置加载与读取配置实例分析 2023-04-19
- php数组函数序列之asort() – 对数组的元素值进行升序排序,保持索引关系 2024-01-13
- 分析五个Laravel Dusk的使用技巧 2022-09-01
- thinkPHP控制器变量在模板中的显示方法示例 2022-10-11
- PHP实现从上往下打印二叉树的方法 2022-10-05
- php使用curl_init()和curl_multi_init()多线程的速度比较详解 2022-11-08
- 微信小程序wx.request使用POST请求时后端无法获取数据解决办法 2023-05-20
- 多个Laravel项目如何共用migrations详解 2022-11-18
- 浅谈PHPANALYSIS提取关键字 2022-12-30
- PHP中include和require的使用详解 2023-06-04