|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2008-09-25 16:18 UTC] pageexec at freemail dot hu
[2008-09-25 17:20 UTC] nlopess@php.net
[2008-09-26 08:00 UTC] pageexec at freemail dot hu
[2008-09-26 12:14 UTC] nlopess@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Dec 06 22:00:02 2025 UTC |
Description: ------------ the pcre extension contains a copy of some specific version of libpcre, with most of the names prefixed with php_ except for _pcre_utt_names which is not prefixed. this means that if a libphp user such as apache2 also happens to load libpcre (mine's directly linked against it so it loads before libphp), the symbols from the latter may override _pcre_utt_names and libphp will use the wrong names table when analyzing \p and \P (the indices would come from php__pcre_utt which is specific for the _pcre_utt_names table contained in the pcre extension). Reproduce code: --------------- preg_match_all("/\pL/u", "php", $matches); print_r($matches); Expected result: ---------------- Array ( [0] => Array ( [0] => p [1] => h [2] => p ) ) Actual result: -------------- Warning: preg_match_all() [function.preg-match-all]: Compilation failed: unknown property name after \P or \p at offset 3 in <test.php> on line <x>