https://github.com/choval/email_parse
Email parse and validation functions for PHP
https://github.com/choval/email_parse
email email-parser email-validation parse php punycode unicode validate
Last synced: about 2 months ago
JSON representation
Email parse and validation functions for PHP
- Host: GitHub
- URL: https://github.com/choval/email_parse
- Owner: choval
- License: mit
- Created: 2019-12-21T20:47:00.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-11-19T21:18:54.000Z (over 2 years ago)
- Last Synced: 2025-08-18T14:57:07.471Z (6 months ago)
- Topics: email, email-parser, email-validation, parse, php, punycode, unicode, validate
- Language: PHP
- Size: 59.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# choval/email\_parse
Email functions for validating and parsing emails.
## Why
1. PHP's `filter_var` doesn't validate Unicode emails.
2. Punycode~
3. Why not?
## Install
```sh
composer require choval/email_parse
```
## Functions
### email\_parse
Parses an email and returns an array with the parts of an email.
```php
$parts = email_parse('user@EXAMPLE.COM');
var_dump($parts);
/*
array(11) {
["raw"]=>
string(16) "user@EXAMPLE.COM"
["unicode"]=>
bool(false)
["valid"]=>
bool(true)
["idn_domain"]=>
string(11) "example.com"
["idn_local"]=>
string(4) "user"
["idn_tld"]=>
string(3) "com"
["domain"]=>
string(11) "example.com"
["tld"]=>
string(3) "com"
["local"]=>
string(4) "user"
["safe_email"]=>
string(16) "user@example.com"
["email"]=>
string(16) "user@example.com"
}
*/
// Go crazy
$parts = email_parse('π@ν
μ€νΈγγγΉγ');
var_dump($parts);
/*
array(11) {
["raw"]=>
string(26) "π@ν
μ€νΈγγγΉγ"
["unicode"]=>
bool(true)
["valid"]=>
bool(true)
["idn_domain"]=>
string(25) "xn--9t4b11yi5a.xn--zckzah"
["idn_local"]=>
string(8) "xn--h28h"
["idn_tld"]=>
string(10) "xn--zckzah"
["domain"]=>
string(19) "ν
μ€νΈ.γγΉγ"
["tld"]=>
string(9) "γγΉγ"
["local"]=>
string(4) "π"
["safe_email"]=>
string(34) "xn--h28h@xn--9t4b11yi5a.xn--zckzah"
["email"]=>
string(24) "π@ν
μ€νΈ.γγΉγ"
}
*/
```
### email\_valid
Check if an email is valid and returns the email if valid or false.
Uses `email_parse` in the background and returns `email` key.
```php
$valid = email_valid('π@ν
μ€νΈγγγΉγ');
var_dump($valid);
// string(24) "π@ν
μ€νΈ.γγΉγ"
// Non valid because of starting dot
$valid = email_valid('.π@ν
μ€νΈ.γγΉγ');
var_dump($valid);
// bool(false)
```
### email\_safe
Check if an email is valid and returns the email in punycode if valid or false.
Uses `email_parse` in the background and returns `safe_email` key.
```php
$valid = email_safe('π@ν
μ€νΈγγγΉγ');
var_dump($valid);
// string(34) "xn--h28h@xn--9t4b11yi5a.xn--zckzah"
// Non valid because of starting dot
$valid = email_safe('.π@ν
μ€νΈ.γγΉγ');
var_dump($valid);
// bool(false)
```
## License
MIT