用正则提取图片
[ 2010-04-11 23:05:47 | 作者: admin ]
用这个正则也提取不出来
请教一下大虾你们是怎么做的
你的<没转义.
我认为如下
/\<img.*?src\=\"(.*?)\"[^>]*>/i
首先.你不确定src与img之间有些什么东西.或许是个空格.或者还有border等等.
所以要用.*?来设定所有字符.
复制PHP内容到剪贴板
PHP代码:
请教一下大虾你们是怎么做的
你的<没转义.
我认为如下
/\<img.*?src\=\"(.*?)\"[^>]*>/i
首先.你不确定src与img之间有些什么东西.或许是个空格.或者还有border等等.
所以要用.*?来设定所有字符.
复制PHP内容到剪贴板
PHP代码:
<?php
$image_html = '<P align=center><IMG alt="abc" src="[url=http://img1.qq.com/ent/pics/7274/7274403.jpg]http://img1.qq.com/ent/pics/7274/7274403.jpg[/url]" border=1>';
preg_match_all('/<IMG alt="(.+?)" src="(.+?)"/i', $image_html, $arr);
print_r($arr);
?>
/*************************************************************************************/
//函数名:get_image_fromcontent( &$content)
//作用:在含有HTML标签并带有图片的内容中过滤出图片地址(去除图片样式只保留图片地址)
//参数:$content(待过滤的字符串)
//返回值:字符串
//备注:数据库中查询带图片的内容最有效的查询语句-- ***(查询项) REGEXP '<\s*img[^>]+src\s*=\s*[^>]+>'
private function get_image_fromcontent( &$content)
{
//获取内容中图片
//取得第一个匹配的图片路径
$retimg="";
$matches=null;
//标准的src="xxxxx"或者src='xxxxx'写法
preg_match("/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i", $content, $matches);
if(isset($matches[2])){
$retimg=$matches[2];
unset($matches);
return $retimg;
}
//非标准的src=xxxxx 写法
unset($matches);
$matches=null;
preg_match("/<\s*img\s+[^>]*?src\s*=\s*(.*?)[\s\"\'>][^>]*?\/?\s*>/i", $content, $matches);
if(isset($matches[1])){
$retimg=$matches[1];
}
unset($matches);
return $retimg;
}
这个取图片的功能不错!代码加亮没搞好,将就点看,
$image_html = '<P align=center><IMG alt="abc" src="[url=http://img1.qq.com/ent/pics/7274/7274403.jpg]http://img1.qq.com/ent/pics/7274/7274403.jpg[/url]" border=1>';
preg_match_all('/<IMG alt="(.+?)" src="(.+?)"/i', $image_html, $arr);
print_r($arr);
?>
/*************************************************************************************/
//函数名:get_image_fromcontent( &$content)
//作用:在含有HTML标签并带有图片的内容中过滤出图片地址(去除图片样式只保留图片地址)
//参数:$content(待过滤的字符串)
//返回值:字符串
//备注:数据库中查询带图片的内容最有效的查询语句-- ***(查询项) REGEXP '<\s*img[^>]+src\s*=\s*[^>]+>'
private function get_image_fromcontent( &$content)
{
//获取内容中图片
//取得第一个匹配的图片路径
$retimg="";
$matches=null;
//标准的src="xxxxx"或者src='xxxxx'写法
preg_match("/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i", $content, $matches);
if(isset($matches[2])){
$retimg=$matches[2];
unset($matches);
return $retimg;
}
//非标准的src=xxxxx 写法
unset($matches);
$matches=null;
preg_match("/<\s*img\s+[^>]*?src\s*=\s*(.*?)[\s\"\'>][^>]*?\/?\s*>/i", $content, $matches);
if(isset($matches[1])){
$retimg=$matches[1];
}
unset($matches);
return $retimg;
}
评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1378
这篇日志没有评论。
此日志不可发表评论。