怎么能适用于name和value前后位置不确定的情况?

解决方案 »

  1.   

    <param name="src" value="" />

    <param value="" name="src" />

    <param value="" xxx name="src" />

    <param xxx name="src" xxx value="" xxx />
    或……
      

  2.   

    (<param[^>]+(?:(name|value)=['\"]?(src)['\"]?[^>]*?)(name|value)=['\"]?)(.*)(['\" ]?[^>]*>)这样匹配整句没问题,但不知道你要保存哪段值啊?
      

  3.   

    不行啊.
    <?
    // $re = "/<param[^>]+(?:name=['\"]?(src)['\"]?)[^>]*?value=['\"]?(.*)['\" ]?[^>]*>/i";
    $re = "(<param[^>]+(?:(name|value)=['\"]?(src)['\"]?[^>]*?)(name|value)=['\"]?)(.*)(['\" ]?[^>]*>)/i";
    $str = "<param name='src' value='1.swf'>";
    // $str = "<param value='1.swf' name='src'>";
    $arr = array( );
    preg_match_all( $re, $str, $arr );
    print_r( $arr );
    ?>