php 怎样获取文本内容中的图片和文件路径?
<%FunctiongFile_Url(str)'获取含有Html代码的文本内容中所有文件,去掉ahref标签Dimn,m,a,i,t'转换为/UpFile/Upload...
<%
Function gFile_Url(str) '获取含有Html代码的文本内容中所有文件,去掉 a href 标签
Dim n,m,a,i,t '转换为/UpFile/Upload/abc.doc$||||$/UpFile/Upload/abc.xls 型式
a=""
str = Is_Null(str) '防止为空 补值 str = ""
Set n = New RegExp
n.Ignorecase = True
n.Global = True
n.Pattern = "<a[^>]+href=""([^"">]+)""[^>]*>"
Set m = n.Execute(str)
IF n.test(str) Then
For i = 0 to m.Count-1
IF i>0 Then t = "$||||$" Else t = ""
a = a & t & m(i).SubMatches(0)
Next
End IF
Set m=Nothing
Set n=Nothing
gFile_Url=a
End Function
Function gPic_Url(str) '获取含有Html代码的文本内容中所有图片,去掉 img 标签
Dim n,m,a,i,s,t '转换为 /UpFile/Upload/abc.jpg$||||$/UpFile/Upload/abc.gif 型式
a = ""
str = Is_Null(str) '防止为空 补值 str = ""
Set n =New RegExp
n.IgnoreCase = True
n.Global = True
n.Pattern = "<img[^>]*src\s*=\s*['""]?([\w/\-\:.]*)['""]?[^>]*>"
If n.test(str) Then
Set s = n.Execute(str) '执行搜索
i=0
For Each m in s '遍历匹配集合
IF i>0 Then t = "$||||$" Else t = ""
a = a & t & m.SubMatches(0) '只取src
i=i+1
Next
gPic_Url = a
End If
End Function
%>
怎样将这两个函数转换成 php 脚本。谢谢! 展开
Function gFile_Url(str) '获取含有Html代码的文本内容中所有文件,去掉 a href 标签
Dim n,m,a,i,t '转换为/UpFile/Upload/abc.doc$||||$/UpFile/Upload/abc.xls 型式
a=""
str = Is_Null(str) '防止为空 补值 str = ""
Set n = New RegExp
n.Ignorecase = True
n.Global = True
n.Pattern = "<a[^>]+href=""([^"">]+)""[^>]*>"
Set m = n.Execute(str)
IF n.test(str) Then
For i = 0 to m.Count-1
IF i>0 Then t = "$||||$" Else t = ""
a = a & t & m(i).SubMatches(0)
Next
End IF
Set m=Nothing
Set n=Nothing
gFile_Url=a
End Function
Function gPic_Url(str) '获取含有Html代码的文本内容中所有图片,去掉 img 标签
Dim n,m,a,i,s,t '转换为 /UpFile/Upload/abc.jpg$||||$/UpFile/Upload/abc.gif 型式
a = ""
str = Is_Null(str) '防止为空 补值 str = ""
Set n =New RegExp
n.IgnoreCase = True
n.Global = True
n.Pattern = "<img[^>]*src\s*=\s*['""]?([\w/\-\:.]*)['""]?[^>]*>"
If n.test(str) Then
Set s = n.Execute(str) '执行搜索
i=0
For Each m in s '遍历匹配集合
IF i>0 Then t = "$||||$" Else t = ""
a = a & t & m.SubMatches(0) '只取src
i=i+1
Next
gPic_Url = a
End If
End Function
%>
怎样将这两个函数转换成 php 脚本。谢谢! 展开
3个回答
展开全部
$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.baidu,com/">aaa</a>';
$str = strip_tags($str, '<img>');
preg_match_all('/\<img\s+src\=\"([\w:\/\.]+)\"/', $str, $matches);
//var_dump($matches[1]);
$match = $matches[1];
foreach ($match as $value) {
echo $value."<br>";
}
展开全部
需要用正则表达式来解析,例子:
<?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);
?>
<?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);
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用php正则写更好,就不用转这个了。例子:
<?php
$str = file_get_contents("http://www.27.cn/kutu/2475/1613221.html");
var_dump(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];//返回所有图片的路径
}
?>
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询