我知道這可以使用Outlook中的設置完成,但只能爲我自己排序。使用PHP阻止在Outlook等鏈接中使用自動鏈接超鏈接
我想什麼做的是使用PHP來防止超鏈接只是因爲有一個@符號等的文字...
據我所看到的,對我來說,唯一的選擇就是編碼所有@符號來其HTML數字實體,像這樣:
事情是這樣的:
$message = str_replace('@','@',$message);
然而,如果可能的話,我不希望這樣的事情發生,如果@符號是一個電子郵件地址的一部分。
因此我需要的是這樣的:
// SOME_REGEX will match any @ sign that is NOT part of an email address
$message = preg_replace('SOME_REGEX','@',$message);
任何人都可以想到的任何其他更好的方法?這個計劃有什麼缺陷嗎?任何人都可以提出一個很好的正則表達式嗎?我掙扎的時候才發現編寫一個@符號相匹配的正則表達式,如果它不是一個電子郵件地址的一部分
在此先感謝
這是我最後的選擇,儘管我可能會略微不同,因爲可能沒有空格。我寧願使用正則表達式,但我認爲它有點太複雜。我可以做的是使用正則表達式過濾掉電子郵件地址,然後替換剩下的@符號。與你幾乎一樣,但與正則表達式。 +1 – 2012-04-20 09:59:50
謝謝。我更喜歡避免使用正則表達式,除非它適合作業或唯一的選擇,因爲它會增加任務的開銷。它可能需要更少的線路,但是以加載正則表達式引擎爲代價。 – Anthony 2012-04-20 10:01:55
我完全同意,我很少使用它,但我總是用它來進行電子郵件地址驗證,因爲'filter_var'函數有點不可靠,就像在這種情況下一樣... – 2012-04-20 10:03:38