我知道这可以使用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);
有人能想到其他更好的方法吗?这个计划有什么缺陷吗?谁能为此建议一个好的正则表达式?我正在努力编写一个正则表达式匹配@符号,如果它不是电子邮件地址的一部分
提前致谢
答案 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=.......