php
  • string
  • 2015-05-26 64 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

    相關問題