php 正则匹配文章中的所有图片
时间:2023年10月04日
/来源:网络
/编辑:佚名
可以使用 PHP 的正则表达式函数 preg_match_all() 来匹配文章中的所有图片链接,正则表达式可以根据图片链接的格式进行匹配。
以下是一个例子:
function getImagesFromContent($content) {
$pattern = '/<img.*?src=[\'"](.*?)[\'"].*?>/i';
preg_match_all($pattern, $content, $matches);
return $matches[1];
}
这个函数接收一个字符串参数 $content,表示文章内容。它会使用正则表达式 /<img.*?src=[\'"](.*?)[\'"].*?>/i 匹配文章中的所有图片链接。其中,.*? 表示匹配任意字符(包括空白字符)零次或多次,使用 ? 表示非贪婪模式(尽可能少匹配字符);[\'"] 表示匹配单引号或双引号;i 表示忽略大小写。匹配结果会被保存在 $matches 数组中的第二个元素 $matches[1] 中,函数返回这个数组。
使用示例:
$content = '<p><img src="https://example.com/image1.jpg" /></p>
<p><img src="https://example.com/image2.jpg" /></p>
<p><img src="https://example.com/image3.jpg" /></p>';
$images = getImagesFromContent($content);
var_dump($images);
输出结果:
array(3) {
[0]=>
string(24) "https://example.com/image1.jpg"
[1]=>
string(24) "https://example.com/image2.jpg"
[2]=>
string(24) "https://example.com/image3.jpg"
}
以下是一个例子:
function getImagesFromContent($content) {
$pattern = '/<img.*?src=[\'"](.*?)[\'"].*?>/i';
preg_match_all($pattern, $content, $matches);
return $matches[1];
}
这个函数接收一个字符串参数 $content,表示文章内容。它会使用正则表达式 /<img.*?src=[\'"](.*?)[\'"].*?>/i 匹配文章中的所有图片链接。其中,.*? 表示匹配任意字符(包括空白字符)零次或多次,使用 ? 表示非贪婪模式(尽可能少匹配字符);[\'"] 表示匹配单引号或双引号;i 表示忽略大小写。匹配结果会被保存在 $matches 数组中的第二个元素 $matches[1] 中,函数返回这个数组。
使用示例:
$content = '<p><img src="https://example.com/image1.jpg" /></p>
<p><img src="https://example.com/image2.jpg" /></p>
<p><img src="https://example.com/image3.jpg" /></p>';
$images = getImagesFromContent($content);
var_dump($images);
输出结果:
array(3) {
[0]=>
string(24) "https://example.com/image1.jpg"
[1]=>
string(24) "https://example.com/image2.jpg"
[2]=>
string(24) "https://example.com/image3.jpg"
}
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03