Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';我不知道如何使substr\u compare正常工作(PHP)_Php_Html - Fatal编程技术网

Can';我不知道如何使substr\u compare正常工作(PHP)

Can';我不知道如何使substr\u compare正常工作(PHP),php,html,Php,Html,所以我有一个基本的脚本: /*check if email is valid*/ if (substr_compare ( $email , '@' , 0 )>0) { /*put user to temporary database*/ echo 'registration script'; }else{echo 'wrong mail';}; 我要做的是检查字符串是否包含符号“@”(如果邮件有效)。 但它不起作用: 当我将变量$email设置为'name'=时,函

所以我有一个基本的脚本:

/*check if email is valid*/
if (substr_compare ( $email , '@' , 0 )>0)
{   
/*put user to temporary database*/      
echo 'registration script';
}else{echo 'wrong mail';};
我要做的是检查字符串是否包含符号“@”(如果邮件有效)。 但它不起作用: 当我将变量$email设置为'name'=时,函数返回'1',尽管我假设它应该返回0或-1,因为字母不在那里。 我缺少什么?

要检查字符串是否包含需要使用的另一个子字符串(而不是比较函数,如
substr\u compare
):

是的,你检查电子邮件地址的方式很弱。使用正则表达式或类似PHP的内置函数

你可以用它来验证电子邮件,这种方法更加健壮

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "This (email) email address is considered valid.";
} else {
    echo "wrong email";
}

要检查输入的电子邮件地址中的字符串是否包含“@”,可以使用strpos函数轻松检查:

if (strpos($_POST['email'], '@') !== false) {
    echo 'The email address has @ in it.';
}

从技术上讲,如果函数找到指定子字符串的第一个字符,则返回该字符的索引位置。如果无法在字符串中定位子字符串,则返回布尔值false。由于子字符串可能从父字符串的最开头开始,因此strps()返回0(在PHP中被解释为false),因此绝对比较为!==是必需的。

检查@不是检查好电子邮件的方法。正则表达式工作得更好;谷歌“正则表达式电子邮件”,你会发现大量的例子。
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "This (email) email address is considered valid.";
} else {
    echo "wrong email";
}
if (strpos($_POST['email'], '@') !== false) {
    echo 'The email address has @ in it.';
}