Bộ lọc để xác thực địa chỉ email trong PHP là gì?
Hàm PHP này nhằm mục đích xác thực và vệ sinh dữ liệu. Nó có khả năng lọc một biến duy nhất với một bộ lọc cụ thể. Hai phần dữ liệu được bao gồm trong đó. biến cần kiểm tra và cách kiểm tra áp dụng Show
Biểu thức chính quy preg_match() nhằm mục đích tìm kiếm chuỗi cho một mẫu. True sẽ được trả về khi mẫu ở đó, và ngược lại, false Trong bài viết này, chúng ta sẽ tìm hiểu cách xác thực email bằng biểu thức chính quy PHP. Chúng ta sẽ tìm hiểu các phương pháp khác nhau để xác thực địa chỉ email trong PHP Phương pháp1Hàm preg_match() kiểm tra đầu vào khớp với các mẫu bằng biểu thức chính quy Ví dụBản thử trực tiếp đầu raValid email address. Trong ví dụ trên, hàm PHP preg_match() đã được sử dụng để tìm kiếm chuỗi cho một mẫu và toán tử bậc ba PHP đã được sử dụng để trả về giá trị đúng hoặc sai dựa trên giá trị trả về preg_match Thật không may, việc xác minh chính xác địa chỉ email không phải là một nhiệm vụ dễ dàng, vì vậy chúng tôi đã tổng hợp hướng dẫn chi tiết này để giúp bạn giải quyết. Vui lòng tự mình thử các đoạn mã chúng tôi đã chia sẻ để thử nghiệm xác thực địa chỉ email trong PHP. Ngoài ra, để thay thế, hãy xem hướng dẫn của chúng tôi để xác thực email bằng regex Cách kiểm tra định dạng của địa chỉ email trong PHPPHP vốn cung cấp một loạt hàm để xác thực và lọc, đáng chú ý nhất là hàm filter_var(), có thể xác thực định dạng địa chỉ email Hàm filter_var() chấp nhận 3 tham số
Để sử dụng filter_var() để thực hiện xác thực định dạng email, tham số thứ hai phải được đặt thành FILTER_VALIDATE_EMAIL. Nếu bạn biết rằng địa chỉ email để xác thực có chứa các ký tự Unicode, thì bạn cũng phải chỉ định tùy chọn FILTER_FLAG_EMAIL_UNICODE làm tham số thứ ba. Đây là hai ví dụ
Tuy nhiên, nhìn vào chức năng trên GitHub sẽ thấy ngay rằng việc kiểm tra định dạng địa chỉ email sẽ không hoạt động trong mọi trường hợp. Đây là bình luận của nhà phát triển. Regex này không xử lý các bình luận và khoảng trắng gấp Thật vậy, ngay cả khi hiếm, các khoảng trắng vẫn được cho phép trong một địa chỉ email miễn là chúng được mã hóa và trong trường hợp này, giống như các trường hợp tương tự khác, hàm có thể cung cấp một phủ định sai (cho biết rằng địa chỉ email không hợp lệ, trong khi nó Xác thực email bằng hàm filter_var() của PHPTuy nhiên, xác thực định dạng địa chỉ là không đủ. Để tập lệnh xác thực dữ liệu biểu mẫu có hiệu lực, tập lệnh phải kiểm tra xem địa chỉ email có thực sự tồn tại không Ví dụ: địa chỉ email john. doe@donteventrytofindthis. máy chủ, hoặc thậm chí đơn giản hơn john. doe@mgail. com, mặc dù có định dạng hợp lệ, sẽ không tồn tại. Việc xác thực chỉ dựa trên hàm filter_var() sẽ không phát hiện ra lỗi Để triển khai tập lệnh xác minh như vậy, cần phải viết logic phức tạp để kiểm tra sự tồn tại của tên miền, sau đó truy vấn các bản ghi của nó để xác định xem các trường MX có được điền chính xác hay không và cuối cùng kiểm tra xem máy chủ SMTP có phản hồi chính xác không. Có thể dễ dàng hình dung, đây là một nhiệm vụ nặng nề Giải pháp xác minh email hiệu quả nhất với PHP. sử dụng API Tóm tắtKhi quá khó để phát triển một giải pháp hiệu quả, người ta phải chuyển sang các dịch vụ có sẵn trên Internet và lý tưởng nhất là chọn một trong những API xác thực email tốt nhất Tóm tắt cung cấp API miễn phí cho phép xác minh địa chỉ email, xác thực định dạng của chúng và kiểm tra xem tên miền có thể định tuyến được không (nói cách khác. nó kiểm tra xem máy chủ có tồn tại không). API cũng cho biết liệu địa chỉ email có phải từ dịch vụ email dùng một lần không cần nhận dạng để sử dụng hay không Để sử dụng API trừu tượng, hãy tạo tài khoản và nhận khóa API riêng của bạn. Sau đó, việc sử dụng API đơn giản như một cuộc gọi qua curl, như thế này Không còn nhu cầu trong PHP để tạo các biểu thức chính quy của riêng bạn để cố gắng xác thực địa chỉ email; . Điều này có sẵn từ PHP 5. 2. 0 Cập nhật ngày 23 tháng 7 năm 2010Như đã chỉ ra trong một bình luận trên trang này, e. g. chris@example sẽ xác thực mặc dù đây không phải là miền thông thường. Tuy nhiên, phần tên miền của địa chỉ email không thực sự cần chứa dấu chấm (e. g. máy chủ cục bộ). Trong sử dụng thực tế, bạn thường muốn đảm bảo phần tên miền bao gồm một dấu chấm, vì vậy tôi đã viết một bài đăng cập nhật có thêm biểu thức chính quy để kiểm tra điều này
Xác thực địa chỉ email bằng filter_varHàm filter_var chấp nhận ba tham số nhưng để kiểm tra địa chỉ email thì chỉ cần hai tham số đầu tiên. Tham số đầu tiên là dữ liệu cần lọc, trong trường hợp này là địa chỉ email và tham số thứ hai là loại bộ lọc, trong trường hợp này là FILTER_VALIDATE_EMAIL hàm filter_var trả về dữ liệu đã lọc hoặc sai nếu bộ lọc bị lỗi. Do đó, có thể thực hiện kiểm tra đối với một địa chỉ email hợp lệ bằng cách kiểm tra xem có bất kỳ thứ gì được trả về như vậy không if(filter_var("[email protected]", FILTER_VALIDATE_EMAIL)) { // it's valid so do something } else { // it's not valid so do something else } Dưới đây là một số ví dụ khác // test good email address echo filter_var("[email protected]", FILTER_VALIDATE_EMAIL) ? "goodn" : "badn"; // test good email address echo filter_var("[email protected]", FILTER_VALIDATE_EMAIL) ? "goodn" : "badn"; // not allowed . before @ echo filter_var("[email protected]", FILTER_VALIDATE_EMAIL) ? "goodn" : "badn"; // not allowed . in domain part echo filter_var("[email protected]", FILTER_VALIDATE_EMAIL) ? "goodn" : "badn"; // not allowed . after @ echo filter_var("[email protected]", FILTER_VALIDATE_EMAIL) ? "goodn" : "badn"; // not allowed double @ echo filter_var("chris@@example.com", FILTER_VALIDATE_EMAIL) ? "goodn" : "badn"; // not allowed @ more than once anywhere echo filter_var("chris@[email protected]", FILTER_VALIDATE_EMAIL) ? "goodn" : "badn"; // must have @ echo filter_var("chris#example.com", FILTER_VALIDATE_EMAIL) ? "goodn" : "badn"; Và đầu ra từ trên good good bad bad bad bad bad bad Kiểm tra tên miền hợp lệMột số người đã hỏi tôi cách kiểm tra xem miền có hợp lệ hay không, như một phần của việc kiểm tra tính hợp lệ của địa chỉ email. Một cách để làm điều đó là thực hiện tra cứu bản ghi MX trên miền (với dự phòng là tra cứu bản ghi A). Tôi sẽ không tự mình làm việc này, nhưng đã viết một bài về cách lấy địa chỉ IP của máy chủ thư bằng PHP để giúp mọi người nếu họ muốn Làm cách nào để xác minh địa chỉ email trong PHP?Thư viện xác minh email PHP . Xác thực định dạng của địa chỉ email Nhận bản ghi MX của tên miền của địa chỉ email Kết nối với máy chủ SMTP bằng bản ghi MX Dựa trên mã phản hồi. Kiểm tra xem địa chỉ email người nhận đã cung cấp có hợp lệ không. Kiểm tra xem tên miền của người dùng email có tồn tại không Làm thế nào xác thực email trong PHP giải thích với ví dụ?Ví dụ. if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo("$email là địa chỉ email hợp lệ"); } else{ echo("$email không phải là if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo("$email is a valid email address"); } else{ echo("$email is not a valid email address"); } ?>
Filter_validate_url trong PHP là gì?Bộ lọc FILTER_VALIDATE_URL xác thực URL . cờ có thể. FILTER_FLAG_SCHEME_REQUIRED - URL phải tuân thủ RFC (như http. // ví dụ) FILTER_FLAG_HOST_REQUIRED - URL phải bao gồm tên máy chủ (như http. //www. ví dụ. com)
Filter_sanitize_email là gì?Bộ lọc FILTER_SANITIZE_EMAIL xóa tất cả các ký tự không hợp lệ khỏi địa chỉ email . |