为了账号安全,请及时绑定邮箱和手机立即绑定

在php中填写电子邮件的名称部分时如何过滤掉数组创建的特殊字符

在php中填写电子邮件的名称部分时如何过滤掉数组创建的特殊字符

PHP
aluckdog 2024-01-19 20:55:58
我已经构建了一个电子邮件应用程序(?),并且我希望在用户提交表单时过滤掉特殊字符(例如!@£$%^)。这是我到目前为止所做的:<?php$name = $_POST['name'];$to = "hm_087@hotmail.com";$subject = "Test";$message  = $name;$invalid= array("@","!","#");if (($_POST['name'])!== $invalid[0]){    mail($to, $subject, $message);    echo 'Message sent';} else {    echo 'Invalid character entered';}?>正如您所看到的,我创建了一个数组来执行此操作,但我仅限于过滤掉一个特殊字符(即@字符)。有什么方法可以从数组中选择要过滤掉的所有字符?
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您只需使用正则表达式即可进行字符匹配。


if (!preg_match('/[!@£$%^]/', $name)) {

    mail($to, $subject, $message);

    echo 'Message sent';

} else {

    echo 'Invalid character entered';

}

!@£$%^这里它正在检查您在问题中特别提到的字符,但是“我希望过滤掉特殊字符”有点含糊,我怀疑您的意思是在其中包含更多字符。如果您可以更具体地说明您想要允许哪些字符,我们可以改进正则表达式。


查看完整回答
反对 回复 2024-01-19
  • 1 回答
  • 0 关注
  • 31 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信