2016-06-12 152 views
0

我正在使用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://stackoverflow.com/a/19220270/2374643 –

回答

1

您可以使用在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),它也是一樣的。 –