<?php
$s = '<img src=1.gif />第一张图片说明 <img src= 2.gif > <img src="3.gif">第三张图片说明';
preg_match_all("/(<img\s[^>]*src=[\"\'\s]?[^>\"\'\r\n\/\s>]+[\"\'\s][^>]*>)([^<\s]*)/i",$s,$temp);
unset($temp[0]);
foreach($temp[1] as $val){
$add = " />";
$temp2[0][] = preg_replace("/(<img\s[^>]*src=)([\"\']?)(\s?)([^>\"\'\r\n\/\s]+)([\"\']?)([^>\/]*)([\/]?)(>)/i","\\1\${4}$add",$val);
}
$temp2[1] = $temp[2];
var_export($temp2);
?>

解决方案 »

  1.   

    楼上的谢谢你了,如果字符串变为这样,描述图片带有html格式还要控制吗?麻烦你写出来
    $s = '<img src=1.gif />第一张<b>图片</b><a href=#>说明</a> <img src= 2.gif > <img src="3.gif">第三张图片说明';
      

  2.   

    <?php
    $str = ' <img src=1.gif />第一张图片说明 <img src= 2.gif > <img src="3.gif">第三张图片说明';preg_match_all('/(<img.*?>)([^<]+)/si', $str, $a);for ($i = 0; $i < sizeof($a); $i++)
    {
        $imgArr[$i][0] = $a[1][$i];
        $imgArr[$i][1] = $a[2][$i];
    }var_dump($imgArr);
    ?> 
      

  3.   


    <?php
    $s = ' <img src=1.gif />第一张 <b>图片i </b> <a href=#>说明 </a> <img src= 2.gif > <img src="3.gif">第三张图片说明';
    preg_match_all("/(<img\s[^>]*src=[\"\'\s]?[^>\"\'\r\n\/\s>]+[\"\'\s][^>]*>)/i",$s,$temp);
    foreach($temp[1] as $val){
        $add = " />";
        $temp2[0][] = preg_replace("/(<img\s[^>]*src=)([\"\']?)(\s?)([^>\"\'\r\n\/\s]+)([\"\']?)([^>\/]*)([\/]?)(>)/i","\\1\${4}$add",$val);
    }
    $temp2[1] = preg_split("/<img\s[^>]*>/Ui",$s);
    array_shift(&$temp2[1]);
    var_export($temp2);
    ?>
      

  4.   

    <?php $s = ' <img src=1.gif />第一张 <b>图片i </b> <a href=#>说明 </a> <img src= 2.gif > <img src="3.gif">第三张图片说明'; preg_match_all("/(<img\s[^>]*src=[\"\'\s]?[^>\"\'\r\n\/\s>]+[\"\'\s][^>]*>)/i",$s,$temp); foreach($temp[1] as $val){ $add = " />"; $temp2[0][] = preg_replace("/(<img\s[^>]*src=)([\"\']?)(\s?)([^>\"\'\r\n\/\s]+)([\"\']?)([^>\/]*)([\/]?)(>)/i","\\1\${4}$add",$val); } $temp2[1] = preg_split("/<img\s[^>]*>/Ui",$s); array_shift(&$temp2[1]); var_export($temp2); ?>