Fix filter on regex with ^ and $

This commit is contained in:
Laurent Destailleur 2023-05-10 12:28:51 +02:00
parent c6423a4a55
commit 91ad17787a

View File

@ -463,7 +463,11 @@ if ($mode == 'searchkey') {
} else {
// Now search into translation array
foreach ($newlang->tab_translate as $key => $val) {
if ($transkey && !preg_match('/'.preg_quote($transkey, '/').'/i', $key)) {
$newtranskey = preg_replace('/\$$/', '', preg_replace('/^\^/', '', $transkey));
$newtranskeystart = preg_match('/^\^/', $transkey);
$newtranskeyend = preg_match('/\$$/', $transkey);
$regexstring = ($newtranskeystart ? '^' : '').preg_quote($newtranskey, '/').($newtranskeyend ? '$' : '');
if ($transkey && !preg_match('/'.$regexstring.'/i', $key)) {
continue;
}
if ($transvalue && !preg_match('/'.preg_quote($transvalue, '/').'/i', $val)) {