note 125090 added to regexp.reference.meta

From: Date: Sat, 06 Jun 2020 11:15:21 +0000
Subject: note 125090 added to regexp.reference.meta
Groups: php.notes 
Request: Send a blank email to php-notes+get-214733@lists.php.net to get a copy of this message
". match any character except newline (by default)" Here "newline" seems to include both \n (LF) and \r (CR) in PHP 7.4.6. PHP 7.3.18 seems to be more tolerant and only include \n (LF). Example: <?php $s = "HTTP/1.1 200 OK\r\n"; if (!preg_match('/^HTTP\/(\d\.\d)\s*(\d+).*\n/', $s, $m)) echo "Not matched correctly!\n"; else echo "OK\n"; ?> The ".*" is supposed to match 0-n characters including \r (CR). It does so in PHP 7.3.18 but not in PHP 7.4.6. Result (PHP 7.3.18): OK Result (PHP 7.4.6): Not matched correctly! A pattern that works in both versions of PHP looks like this: '/^HTTP\/(\d\.\d)\s*(\d+).*\r?\n/' ---- Server IP: 45.112.84.4 Probable Submitter: 103.51.166.36 (proxied: 80.133.224.177) ---- Manual Page -- http://php.net/manual/en/regexp.reference.meta.php Edit -- https://master.php.net/note/edit/125090 Del: integrated -- https://master.php.net/note/delete/125090/integrated Del: useless -- https://master.php.net/note/delete/125090/useless Del: bad code -- https://master.php.net/note/delete/125090/bad+code Del: spam -- https://master.php.net/note/delete/125090/spam Del: non-english -- https://master.php.net/note/delete/125090/non-english Del: in docs -- https://master.php.net/note/delete/125090/in+docs Del: other reasons-- https://master.php.net/note/delete/125090 Reject -- https://master.php.net/note/reject/125090 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#214733) next »