|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2020-07-07 07:20 UTC] cyberline@php.net
Description: ------------ In all PHP Versions except 5.3.2 the following Script will return false for FILTER_VALIDATE_EMAIL while FILTER_SANITIZE_EMAIL does NOTHING to the input email. While the Provided email is a valid return path, i excpect that VALIDATE_EMAIL will return the string provided and not false. Test script: --------------- <?php $email = '3e9.1c.4UB2NC76N436-3SP03.test-EW3LBM-M6H4BG-0-1.mobil.123456.989=test.de@smtp20.test.com'; var_dump(\filter_var($email, FILTER_VALIDATE_EMAIL)); var_dump($email === \filter_var($email, FILTER_SANITIZE_EMAIL)); Expected result: ---------------- string(89) "3e9.1c.4UB2NC76N436-3SP03.test-EW3LBM-M6H4BG-0-1.mobil.123456.989=test.de@smtp20.test.com" bool(true) Actual result: -------------- bool(false) bool(true) PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 18:00:01 2025 UTC |
Well, this is not a bug. FILTER_SANITIZE_EMAIL is documented[1] to: | Remove all characters except letters, digits and | !#$%&'*+-=?^_`{|}~@.[]. while FILTER_VALIDATE_EMAIL rejects addresses with local parts of more than 64 bytes (not yet documented, see bug #78598). [1] <https://www.php.net/manual/en/filter.filters.sanitize.php>