php 怎样获取文本内容中的图片和文件路径?
发布网友
发布时间:2022-04-30 02:24
我来回答
共3个回答
热心网友
时间:2022-06-29 04:54
$str = '<img src="http://localhost/2.jpg" alt="" /> <img src="http://localhost/2.jpg" alt="" /> <img src="http://localhost/2.jpg" alt="" /> <a href="http://www.,com/">aaa</a>';
$str = strip_tags($str, '<img>');
preg_match_all('/\<img\s+src\=\"([\w:\/\.]+)\"/', $str, $matches);
//var_mp($matches[1]);
$match = $matches[1];
foreach ($match as $value) {
echo $value."<br>";
}
热心网友
时间:2022-06-29 04:55
需要用正则表达式来解析,例子:
<?php
$str='<p><img border="0" src="upfiles/2009/07/1246430143_1.jpg" alt=""/></p>';
$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/";
preg_match_all($pattern,$str,$match);
print_r($match);
?>
热心网友
时间:2022-06-29 04:55
直接用php正则写更好,就不用转这个了。例子:
<?php
$str = file_get_contents("http://www.27.cn/kutu/2475/1613221.html");
var_mp(gPic_Url($str));
//提取URL
function gFile_Url($content){
preg_match_all("'<\s*a\s.*?href\s*=\s*([\"\'])?(?(1)(.*?)\\1|([^\s\>]+))[^>]*>?(.*?)</a>'isx",$content,$links);
while(list($key,$val) = each($links[2])) {
if(!empty($val))
$match[] = $val;
}
while(list($key,$val) = each($links[3])) {
if(!empty($val))
$match[] = $val;
}
return $match;
}
//提取图片
function gPic_Url($content){
$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/";//正则
preg_match_all($pattern,$content,$match);//匹配图片
return $match[1];//返回所有图片的路径
}
?>