我每天都通过联系表收到大量垃圾邮件。这些垃圾邮件的内容与本例非常相似:
Ïîñëåäíèè íîâîñòè àðìåíèè ÷èòàéòå íà ñàéòå somedomainname.com
对于这种特定类型的垃圾邮件,我想添加PHP对3个连续特殊字符的检测,因为它永远不会出现在合法电子邮件中(至少最近10年没有这种情况)。什么是实现此目的的聪明方法?
编辑:我不确定如何对这些字符进行分类。如示例所示,它们都具有某种重音。
答案 0 :(得分:1)
基于另一个问题: here
您可以对邮件内容使用正则表达式:
if (preg_match('/([Ïîñëåäíèè]){3}/', $contentOfMail))
{
// $contentOfMail contains at least one set of 3 specials characters back to back
}
我让您在正则表达式中填写所有需要匹配的字符
答案 1 :(得分:0)
要检查是否存在一个或多个字母,可以使用本机function of PHP strpos作为以下示例。否则,您也可以使用正则表达式,但是对于基本验证和性能问题,建议使用本机PHP函数。
$mystring = $_POST['message'];
$findme = 'Ïîñëåäíèè';
$pos = strpos($mystring, $findme);
// Note our use of ===. Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
echo "The string '$findme' was not found in the string '$mystring'";
} else {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
}