我使用 preg_quote() 来转义一些特殊字符。但是在下面的测试中,有一些我无法理解的东西。
为什么“日期:1111aaa”不匹配???
<?php
$PregArray = ['date:1111aaa', ':222aaa', '@odia tvled'];
$array['attract (step-date:1111aaa)'] = 'OK';
$array['type (step-date:222aaa)'] = 'OK';
$array['@odia tvled'] = 'OK';
foreach ($PregArray as $key_1 => $val_1) {
echo "\n--------------";
foreach ($array as $key_2 => $val_2) {
if (preg_match("~$val_1~", preg_quote($key_2))) {
echo "\nOK => $val_1 - ".preg_quote($key_2);
break;
}
else {
echo "\nNOK !!! => $val_1 - ".preg_quote($key_2);
}
}
}
http://sandbox.onlinephpfunctions.com/code/9ef36e2b010ac1f4f0eaf08881004892bd0cd9c4