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