由於@cryptic指出,它是在auto_link方法的錯誤。 (See source)他們正在輸出中找到所有電子郵件地址,然後他們會用錨定版本替換全部(str_replace
)。所以......
<p>This is the address [email protected]</p>
<p>This is the second address [email protected]</p>
在第一遍的電子郵件[email protected]
變得
<p>This is the address <a ...>[email protected]</a></p>
<p>This is the second address b<a ...>[email protected]</a></p>
。在第二封電子郵件中,他們嘗試用anchored版本替換[email protected]
,但str_replace
找不到地址,它已被替換。
- 擴展URL幫手auto_link方法:
您可以通過實現自己的定位。 See documentation
- 將來自CodeIgniter源的auto_link方法複製到該新的Helper中。
- 只替換字符串的第一個匹配項。 See this SO thread。
例如:
$str = str_replace($matches['0'][$i], safe_mailto($matches['1'][$i].'@'.$matches['2'][$i].'.'.$matches['3'][$i]).$period, $str);
成爲
$str = preg_replace('/' . $matches['0'][$i] . '/', safe_mailto($matches['1'][$i].'@'.$matches['2'][$i].'.'.$matches['3'][$i]).$period, $str, 1);
這應該修復它。我建議不要修改系統的URL_Helper,稍後您可能會遇到一些遷移問題。
希望這會有所幫助。
請張貼您的代碼。 –
echo auto_link($ page_content-> page_body); – rmccallum
這是內容:
這是地址[email protected]
這是第二個地址[email protected]
– rmccallum