如何验证CSV文件上的电子邮件地址:: laravel

问题描述:

我正在使用laravel将学生的电子邮件地址上传到数据库。 CSV文件包含一个名为'email'的列以列出电子邮件。我想添加验证来检查所有电子邮件格式是否正确。 正确的电子邮件地址格式应该是@ uni.com如何验证CSV文件上的电子邮件地址:: laravel

$path = Input::file('import_file')->getRealPath(); 
       $data = Excel::load($path, function ($reader) { 
       })->get(); 

if (!empty($data) && $data->count() && !empty($data1) && $data1->count()) { 
       foreach ($data as $key => $value) { 
         $insert[] = ['email' => $value->email]; } 

if (!empty($insert)) { 
        DB::table('users')->insert($insert); 
       } 

我使用laravel maatwebsite /请指教擅长插件

+0

PHP有'对于FILTER_VALIDATE_EMAIL'过滤器,你可以在http://php.net/manual/en/filter.filters检查过滤器和选项列表.validate.php。如果验证真的是一个大问题,你可能想检查这个答案http://*.com/a/19220270/2374643 –

您可以使用在PHP中使用正则表达式检查。请参阅http://php.net/manual/en/function.preg-match.php以供参考。

假设电子邮件地址可以包含从a到z的任何字符,下面的PHP代码将检查正确的电子邮件格式(通常电子邮件地址有下划线,数字(不是第一个字符)等等..所以您需要做出更复杂的正则表达式来测试它)

$pattern = '/[a-z][email protected]\.com/i'; 

if(preg_match($pattern, $email) == 1) { 

    // Correct email address 

} else { 

    // Incorrect email address 

} 
+0

谢谢。 !它的工作原理 –

+0

附注:不需要检查变量$ data的两个条件:“不为空”和“计数大于0”。检查其中一个就足够了,因为如果你检查后面的条件,至少有一个结果出现在变量中,并且如果你检查前一个条件(计数大于0),它也是一样的。 –