2016-11-08 61 views
-2

我有以下模式腓搜索特定的鏈接,並附加在URL後他們

$mystring="bla <a href="website.com"></a>"; 

有幾個鏈接和其他HTML標籤的字符串。

我想用一個PHP函數:

  • 搜索所有包含特定單詞的HREF標記。在這種情況下,這個詞將是website.com

  • 附加一個帶有相同URL的文本鏈接。

例子:

<a href="website.com?bla"></a> 

應該成爲:

<a href="website.com?bla"></a><br><a href="website.com?bla">New link here</a> 

而且同樣適用於其他鏈接。

我該如何去做這件事?

+0

我沒有得到你的問題... – Blueblazer172

+0

我已經編輯問題 – prav

回答

1

首先,您應該使用strpos方法迭代所有出現的事件,使用lastPos作爲偏移量。然後插入串/新的鏈接,找到收盤

$needle = "website.com?"; // word to find 
$endLink = "</a>" 
$lastPos = 0; 
$str_to_insert = "<br><a href=\"website.com?bla\">New link here</a>" // text to append 

while (($lastPos = strpos($mystring, $needle, $lastPos))!== false) { 
    //position just after finding the string is: occurrence + string length 
    $lastPos = $lastPos + strlen($needle); 
    //finding the end of link (to append it there) 
    $writePos = strpos($mystring, $endLink, $lastPos); 
    //appending the string and updating $mystring 
    $mystring = substr_replace($mystring, $str_to_insert, $writePos, strlen($endLink); 
    //add the appended string to lastPos, to avoid searching it 
    $lastPos = $writePos + strlen($str_to_insert) 

} 

編輯

製作$str_to_insert動態後:

while (($lastPos = strpos($mystring, $needle, $lastPos))!== false) { 
     $str_to_insert = substr($mystring, $lastPos, len($needle) 
     //position just after finding the string is: occurrence + string length 
     $lastPos = $lastPos + strlen($needle); 
     // ... the rest keeps the same 
} 
+0

看起來沒問題,但str_to_insert實際上應該是動態的,這意味着它應該獲取當前鏈接URL並使用它來創建緊跟其後的新鏈接。 – prav

+0

@prav我剛剛編輯了答案。希望你接受,如果這對你有用:) – otorrillas

相關問題