diff options
author | rxu <rxu@mail.ru> | 2011-01-04 11:54:10 +0700 |
---|---|---|
committer | rxu <rxu@mail.ru> | 2011-01-07 20:51:43 +0700 |
commit | 9a25e4ad8956f46fa41a6057a8af53f2955fb532 (patch) | |
tree | c38ef8792dd74434f249db01789189b4bbfc3ab2 /phpBB/includes/cache.php | |
parent | 7a2348bf7f0ee67856cc5ae15591b7d1b7c48763 (diff) | |
download | forums-9a25e4ad8956f46fa41a6057a8af53f2955fb532.tar forums-9a25e4ad8956f46fa41a6057a8af53f2955fb532.tar.gz forums-9a25e4ad8956f46fa41a6057a8af53f2955fb532.tar.bz2 forums-9a25e4ad8956f46fa41a6057a8af53f2955fb532.tar.xz forums-9a25e4ad8956f46fa41a6057a8af53f2955fb532.zip |
[ticket/9933] Wrong handling consecutive multiple asterisks in word censor
Fix consecutive asterisks issue in word censor.
PHPBB3-9933
Diffstat (limited to 'phpBB/includes/cache.php')
-rw-r--r-- | phpBB/includes/cache.php | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/phpBB/includes/cache.php b/phpBB/includes/cache.php index b50fab4ca2..9b90483b50 100644 --- a/phpBB/includes/cache.php +++ b/phpBB/includes/cache.php @@ -90,9 +90,9 @@ class cache extends acm { // Unescape the asterisk to simplify further conversions $row['word'] = str_replace('\*', '*', preg_quote($row['word'], '#')); - + // Replace the asterisk inside the pattern, at the start and at the end of it with regexes - $row['word'] = preg_replace(array('#(?<=[\p{Nd}\p{L}_])\*(?=[\p{Nd}\p{L}_])#iu', '#^\*#', '#\*$#'), array('([\x20]*?|[\p{Nd}\p{L}_-]*?)', '[\p{Nd}\p{L}_-]*?', '[\p{Nd}\p{L}_-]*?'), $row['word']); + $row['word'] = preg_replace(array('#(?<=[\p{Nd}\p{L}_])\*+(?=[\p{Nd}\p{L}_])#iu', '#^\*+#', '#\*+$#'), array('([\x20]*?|[\p{Nd}\p{L}_-]*?)', '[\p{Nd}\p{L}_-]*?', '[\p{Nd}\p{L}_-]*?'), $row['word']); // Generate the final substitution $censors['match'][] = '#(?<![\p{Nd}\p{L}_-])(' . $row['word'] . ')(?![\p{Nd}\p{L}_-])#iu'; |