使用PHP防止Outlook等中的自动超链接链接

时间:2012-04-20 09:36:21

标签: php regex email encoding hyperlink

我知道这可以使用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);

有人能想到其他更好的方法吗?这个计划有什么缺陷吗?谁能为此建议一个好的正则表达式?我正在努力编写一个正则表达式匹配@符号,如果它不是电子邮件地址的一部分

提前致谢

2 个答案:

答案 0 :(得分:1)

如果电子邮件地址包含在修剪列表中未定义的任何内容中,则无效。

$chunked_message = explode(" ", $message);

foreach($chunked_message as $chunk) {
    $clean_chunked_message[] = 
               (!filter_var(trim($chunk, " -().?!\t\r\n", FILTER_VALIDATE_EMAIL)) 
               ? str_replace('@', '@' $chunk) : $chunk;
}

$clean_message = implode(" ", $clean_chunked_message);
祝你好运。

答案 1 :(得分:0)

这是邮件应用程序在找到链接时检测链接并使其可单击的功能。

逃避这种情况的一个肮脏技巧是在链接之间使用空间。

示例:

http://ww w.you tube.com/v=.......