我的办法有点笨:
先用fopen()之类的东东将一个页的源文件读到$xxx变量中,然后用
$width[] = explode("WIDTH",$xxx);
$height[] = explode("HEIGHT",$xxx);
将字串打散,然后取$width[]、$height[]中的奇数值,如$height[1,3,5]。这样每个变量的第一个字符都是‘=’(如果担心有空格,可以用trim()将其去掉)。然后用substr()之类的将’=’替换为’:’,然后再将替换后的$width[]、$height[](奇偶数的值都要)写到网页的文件中就可以了

解决方案 »

  1.   

    <?php
    $s = '
    图片一
    <IMG SRC="images/left_01.gif" WIDTH=16 HEIGHT=25 ALT="">
    图片二
    <IMG SRC="images/left_02.gif" HEIGHT=16 ALT="aaa" WIDTH=25>
    <a href=..."">其他内容</a>
    ';
    //提取img标签的属性串
    preg_match_all("/<img (.*)>/iU",$s,$regs);
    $img = $regs[1];
    //定义结果数组
    $renArray = array();
    //从属性串数组中提取属性到结果数组
    for($i=0;$i<count($img);$i++) {
      preg_match_all("/\b(src|width|height|alt)=(.+) /iU",$img[$i]." ",$regs);
      foreach($regs[1] as $key=>$value)
        $ar[$value] = ereg_replace("[\"']","",$regs[2][$key]);
      $renArray[] = $ar;
    }
    print_r($renArray);
    ?>
    结果数组
    Array
    (
        [0] => Array
            (
                [SRC] => images/left_01.gif
                [WIDTH] => 16
                [HEIGHT] => 25
                [ALT] => 
            )    [1] => Array
            (
                [SRC] => images/left_02.gif
                [WIDTH] => 25
                [HEIGHT] => 16
                [ALT] => aaa
            ))
      

  2.   


      preg_match_all("/\b(src|width|height|alt)=(.+) /iU",$img[$i]." ",$regs);
    改为
      preg_match_all("/(\b[a-z_]\w*)=(.+) /iU",$img[$i]." ",$regs);
    通用性更强