2011-06-27 87 views
-3

這是交易。我有一個字符串,其中包含html <a><img /></a>標籤。該字符串是從rss返回的。我需要的是將字符串分成兩部分。其中一個我想要<a><img></a>和其他變量中的字符串的其餘部分。由PHP標籤分割字符串由PHP標籤開始

算法:

  • 檢查字符串開頭<a><img></a>
  • 找到<a><img></a>並保存在一個變量。
  • 從原始字符串中刪除<a><img></a>
  • 返回兩個變量。

<a href=""><img src="" /></a> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse eros. Nam augue. Morbi fermentum elit sit amet metus. Cras libero nulla, 
ultricies pulvinar, dapibus eu, tempus et, turpis. Donec urna ligula, commodo ac, tristique ut, egestas eu, justo. Fusce consectetuer vehicula magna. In turpis risus, malesuada et, commodo eget, ornare et, mauris. 

問題:

無法弄清楚如何做到這一點在PHP。我在這個網站上看到了一些包含正則表達式和解析所有字符串的代碼。我想找出一種方法,當正則表達式函數有第一個匹配時,它不會遍歷整個字符串。 將在循環內使用它所以關於速度。

+0

我們已經看到了這個問題太頻繁。 – cwallenpoole

+0

所以,如果你已經有一個算法,你的問題到底是什麼? – NickAldwin

+0

@cwallenpolle:好的先生'Vote Down'你能引導我到一個嗎? – Sisir

回答

4

如果你能保證你輸入的字符串會始終處於這種格式,則:

$closetag = strpos($input, '</a>') + 4; // strpos will return position of `<`, so move up 4 chars 

if ($closetag !== FALSE) { 
    $first = substr($input, 0, $closetag); 
    $last = substr($input, $closetag); 
} else { 
    $first = $last = 'ERROR'; 
} 
+0

+1對*不*使用正則表達式,可能沒有必要 – NickAldwin

+0

嗨,謝謝!好的解決方案,因爲我不必使用正則表達式。還有一件事。該字符串不會總是以''開頭。我們可能需要一個if語句。 – Sisir

+0

+1謝謝!完成它。 – Sisir