php
  • string
  • 2015-05-26 37 views 0 likes 
    0

    我有2个字符串是这样的:删除2个字符串中的重复标签?

    $post_des = 'Neque porro quisquam est qui do <a href = "http://example.com/lorem_ipsum"> lorem ipsum </a> quia dolor sit amet, consectetur, adipisci velit...'; 
    
    $post_detail = '<a href = "http://example.com/lorem_ipsum">lorem ipsum </a> dolor sit amet, consectetur adipiscing elit. Donec quis purus finibus, ultricies diam at, faucibus nunc. Donec ac luctus ipsum,vitae <a href = "http://example.com/vehicula"> vehicula </a> erat. ' ; 
    

    ,并希望删除所有重复AHREF标签,就像这样:

    $post_des = 'Neque porro quisquam est qui do <a href = "http://example.com/lorem_ipsum"> lorem ipsum </a> quia dolor sit amet, consectetur, adipisci velit...'; 
    
    $post_detail = 'lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec quis purus finibus, ultricies diam at, faucibus nunc. Donec ac luctus ipsum,vitae <a href = "http://example.com/vehicula"> vehicula </a> erat. ' ; 
    

    我试图用DOM文档和in_array,但还有约2百万个标签(ex lorem ipsum,vehicular)。有没有更简单的方法?

    +0

    您可能需要使用类似SUBSTR与array_splice一起,但我必须去现在这么着做出来完全一样。 – Andrew

    回答

    1

    使用preg_match获取所有链接标记出现并迭代它们以删除(替换为空字符串)$ post_detail。 [小提琴] [1]

    if(preg_match('/<a.*\>/',$post_des,$link_tags)) 
    { 
        foreach($link_tags as $link_tag) 
        { 
         preg_match('#<a[^>]+>(.+?)</a>#ims', $link_tag,$str); 
    
         $post_detail = str_replace($link_tag,@$str[1],$post_detail); 
        } 
    } 
    

    http://viper-7.com/Ul8BBN

    +0

    我看,好吧,我更新了答案和小提琴 – vivoconunxino

    +0

    你能再次检查吗?我尝试echo $ post_des&$ post_detail但没有发现?它有两个重复的标签是$ post_detail – Asamoa

    相关问题