$str = '<p>234324234</p><img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" /> <p> </p>';如上所示的一个Html字符串,我需要写正则表达式来提取图片的相关属性,包括图片的width,height,src,title,alt,align等属性,我自己在网上找了些资料,也尝试着提取,但结果有些不对,对正则的语法不太熟。/*PHP正则提取图片img标记中的任意属性*/
$str = '<p>234324234</p><img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" /> <p> </p>';
//1、取整个图片代码
preg_match('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*\/>/i',$str,$match);
echo "取整个图片代码:" . $match[0] . "<br/>";
//2、取width
preg_match('/<img.+(width=\\\"?\d*\\\"?).+>/i',$str,$match);
echo "取width:" . $match[1] . "<br/>";
//3、取height
preg_match('/<img.+(height=\\\"?\d*\\\"?).+>/i',$str,$match);
echo "取height:" . $match[1] . "<br/>";
//4、取src
preg_match('/<img.+src=\\\"?(.+\.(jpg|gif|bmp|bnp|png))\\\"?.+>/i',$str,$match);
echo "取src:" . $match[1] . "<br/>";
//4、取title
preg_match('/<img.+(title=\\\"?\d*\\\"?).+>/i',$str,$match);
echo "取title:" . $match[1] . "<br/>";我想要在最终结果是:取整个图片代码:<img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" />
取width:200
取height:100
取src:/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg
取title:测试
$str = '<p>234324234</p><img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" /> <p> </p>';
//1、取整个图片代码
preg_match('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*\/>/i',$str,$match);
echo "取整个图片代码:" . $match[0] . "<br/>";
//2、取width
preg_match('/<img.+(width=\\\"?\d*\\\"?).+>/i',$str,$match);
echo "取width:" . $match[1] . "<br/>";
//3、取height
preg_match('/<img.+(height=\\\"?\d*\\\"?).+>/i',$str,$match);
echo "取height:" . $match[1] . "<br/>";
//4、取src
preg_match('/<img.+src=\\\"?(.+\.(jpg|gif|bmp|bnp|png))\\\"?.+>/i',$str,$match);
echo "取src:" . $match[1] . "<br/>";
//4、取title
preg_match('/<img.+(title=\\\"?\d*\\\"?).+>/i',$str,$match);
echo "取title:" . $match[1] . "<br/>";我想要在最终结果是:取整个图片代码:<img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" />
取width:200
取height:100
取src:/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg
取title:测试
preg_match('/<img\s*title=(\\\")([^"]*)\\1[^src]*src=\\1([^"]*)\\1\s*width=\\1([^"]*)\\1\s*height=\\1([^"]*)\\1[^>]*>/i',$str,$match);
print_r($match);Array
(
[0] => <img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" />
[1] => \"
[2] => 测试
[3] => /jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg
[4] => 200
[5] => 100
)
$str = '<p>234324234</p><img title=\"测试\" alt=\"测试\" align=\"left\" src=\"/jmlt/kindeditor/attached/image/20111217/20111217065616_27638.jpg\" width=\"200\" height=\"100\" /> <p> </p>';
//1、取整个图片代码
preg_match('/<img\s*[^>]*>/i',$str,$match);
echo "取整个图片代码:" . $match[0] . "\n";
//2、取width
preg_match('/<img[^>]*width=(\\\")([^"]*)\\1[^>]*>/i',$str,$match);
echo "取width:" . $match[2] . "\n";
//3、取height
preg_match('/<img[^>]*height=(\\\")([^"]*)\\1[^>]*>/i',$str,$match);
echo "取height:" . $match[2] . "\n";
//4、取src
preg_match('/<img[^>]*src=(\\\")([^"]*)\\1[^>]*>/i',$str,$match);
echo "取src:" . $match[2] . "\n";
//4、取title
preg_match('/<img[^>]*title=(\\\")([^"]*)\\1[^>]*>/i',$str,$match);
echo "取title:" . $match[2] . "\n";