$str="<p>内容内容内容内容内容……内容<img src="" /> 内容内容内容……内容……<a href="">内容</a>内容内容内容内容</p>我想要先提取第一个img标签(如果str有img标签的话,没有img标签也不会显示错误,有多个也只提取第一个),然后在提取一定长度(比如140字节)的内容,最后去掉<p> <a>等标签菜鸟在此谢谢你! 

解决方案 »

  1.   

    $s="<p>内容内容内容内容内容……内容<img src="" /> 内容内容内容……内容……<a href="">内容</a>内容内容内容内容</p>";preg_match_all('/<.+?>/', strip_tags($s, '<img>'), $r);
    print_r($r[0]);
      

  2.   

    关于长度很好办的,看你的编码,如果是GB2312,直接用substr($str,0,140),如果是UTF8码网上有好多资料 ,你可以下载处理。
      

  3.   

    preg_match_all如果能匹配到结果 也是应该是一个二维数组,第一维是包含html标签的,第二维不包含标签只匹配第一次 使用 int preg_match(string 正则,string 原字符串,一维array 结果数组)至于140字节  由于UTF8好像是1个汉字占用3字节 所以正好截取140字节可能会出现乱码preg_match("/<img[^>]>.{140}/",$str,$result);
    $result=$result[0];
    $result=preg_replace("/<[\/]?[ap]{1}[^>]*>/","",$result);初来乍到,请多关照