2013-12-13 68 views
0

我希望能够使用名字和姓氏或电子邮件(当然还有密码)连接到我的网站。问题是数据库中的名字和姓氏不在同一列中。我的问题是,如何使用php来检查$ _post是否有一个电子邮件地址,如果不采取这两个字,并使用这两个名称数组。您在输入中输入的每个单词都会输入到数组中

回答

1

关于电子邮件过滤器:PHP有验证过滤器。

你可以在这里找到更多的信息:http://www.php.net/manual/en/filter.filters.validate.php

在你的情况,你要使用的FILTER_VALIDATE_EMAIL:

if(filter_var($email, FILTER_VALIDATE_EMAIL)) 
{ ... } 

关于与两个ORDS的一部分,使用功能发生爆炸。

语法的爆炸功能:

array explode (string $delimiter , string $string) 

你的情况:

$array = explode(' ', $string); 
1

如果你有文字的字符串,那么你可以只使用explode()函数来获取每个字像一个数组值:

<?php 
    $str = "Alpha Beta Gamma"; 
    $str_array = explode(" ",$str); 
    echo $str_array[0]; //Alpha 
    echo $str_array[1]; //Beta 
    echo $str_array[2]; //Gamma 
?> 

也许这是你寻找的东西,但你的问题是不清楚。

2

您可以使用正则表达式来检查输入是否为电子邮件或用户名。

//Regular expression for email addresses 
$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/'; 

     $password = $_POST['password']; 

//Check if the input is an email or first and last name 
if(preg_match($regex, $_POST['input'], $match)){ 
     $email = $_POST['input']; 
}else{ 
     //Assuming the user entered "Firstname Lastname" 
     list($firstname,$lastname) = explode(" ", $_POST['input']);   
} 
+0

非常感谢! –

+0

不客气!很高兴有帮助。 –

相关问题