2014-07-23 111 views
0

我一直在嘗試刪除一些文本...兩套支架之間...兩個小時我已經嘗試了所有內容...我一直在這裏回答現有問題和答案不工作對我來說...所以這裏去 我有什麼刪除兩個方括號之間的所有內容

[attachment=0:randomID]<!-- ia0 -->randomIMGnam.png<!-- ia0 -->[/attachment:randomID] 

我真的想從一個字符串我能去掉括號內一切的開始刪除所有的這一點,但每次失敗對擺脫圖像名稱

是的,這是從phpbb我從我的數據庫拉它沒有問題,但不希望它顯示時,我回聲它。

在此先感謝我真的希望我真的希望有人能幫助

編輯:我已經試過 1. $extension_pos = strrpos($entry, '<!-- ia0 -->'); // find position of the last dot, so where the extension starts $output = substr($entry, 0, $extension_pos) . '' . substr($entry, $extension_pos);

2. $output= preg_replace('#\].*?\[#', '', $entry);

  1. $output = preg_replace('/\[[^]]*\]/', '', $entry);

  2. $output explode(']', $entry);

  3. $imagename = preg_replace('#([attachment.*?]).*?([/attachment.*?])#', '$1$2', $entry);

+0

發佈你有什麼試圖.. –

+0

你可以REGEX用戶這個 –

+0

@Luke預期的輸出是什麼? –

回答

0

您可以使用正則表達式作爲例子:

<?php 
    $string = 'test [attachment=0:randomID]randomIMGnam.png[/attachment:randomID] test2 [something] 
    test3 

    [/something] test4'; 


    echo preg_replace('#(\[(.*)\](.*)\[/.*\])#Us','',$string); 
    // output test test2 test4 


?> 
1

您可以使用此正則表達式來代替:

$string = ' [attachment=0:randomID]<!-- ia0 -->randomIMGnam.png<!-- ia0 -->[/attachment:randomID]'; 
$string = preg_replace('/\[(.*?)\]/', '', $string); 
+0

Warning:preg_replace():未知修飾符'g' –

+0

@LukeVyner: - 您可以通過preg_replace()隱式刪除g,因爲您不需要包含它 –

0

使用正則表達式可能是重本一種任務。
你可以使用一個簡單的推理,只要你遇到一個開括號就將一個計數器加一,每當你遇到一個緊密的括號就將計數器減一。

只要您的計數器> 0,就忽略這些字符。

相關問題