<P><img src = "1.jpg"/></P><P>test string</P>上面的字符串里的<img>标记在<P>标记里面,如何保留<img>标记里的内容,而去掉外面的<P>标记呢?我用了strip_tags($html,'<img>'); ,这个但是取不到,有什么解决办法?

解决方案 »

  1.   

    我想要的结果是 从 <P><img src = "1.jpg"/></P><P>test string</P> 里提取<img src = "1.jpg"/>
      

  2.   

    strip_tags这个函数是去掉<img>的标记,并不是取得img的标记。你要去掉p标记应该用strip_tags($html,'<p>');
      

  3.   


    输入字符串:  <P><img src = "1.jpg"/></P><P>test string</P> 输出:<img src = "1.jpg"/>用strip_tags($html,'<p>'), 会把里面的 img 删除掉的。因为img标记 在 P标记里
      

  4.   

    用错函数了!手册:
    ===================
    string strip_tags ( string str [, string allowable_tags] )
    第二个参数明明标明了是allowable_tags,就是不被strip掉的html tags$str = '<P><img src = "1.jpg"/></P><P>test string</P>';
    echo htmlspecialchars(strip_tags($str,'<img>'));//<img src = "1.jpg"/>test string
      

  5.   


    我要的结果是保留<img src = "1.jpg"/>标记,其他的内容都不要。最后只要<img src = "1.jpg"/>
      

  6.   

    <?php  
    $str='<P><img src = "1.jpg"/></P><P>test string</P>';
    preg_match("/\<p\>(.*)\<\/p\>\<p\>(.*)\<\/p\>/i",$str,$match);
    echo htmlspecialchars($match[1]);//<img src = "1.jpg"/>
    ?> 
      

  7.   


    你这个对所以的HTML标记都能删除的?我这里面的标记不仅仅是<P>, 还有好多其他的。
      

  8.   

    先用strip_tags去掉除img以外的标签,再用正则取/<img[^>]*\/>/
      

  9.   

    $s = '<P><img src = "1.jpg"/></P><P>test string</P>';
    preg_match_all("/<img.+?>/i", $s, $r);
    print_r($r);Array
    (
        [0] => Array
            (
                [0] => <img src = "1.jpg"/>
            ))
      

  10.   

    用正则吧 preg_match("/<img(.+?)>/",$str,$match)
      

  11.   

    $match== '<P><img src = "1.jpg"/></P><P>test string</P>';$res=preg_match("/<img(.+?)>/",‘’,$match);
      

  12.   

    <?php
    $html="<P><img src = "1.jpg"/></P><P>test string</P>";
    $replace=substr_replace("<p>","<img src = "1.jpg"/>",$html);
    //利用substr_replace部分替换函数
    echo "$replace"?>