У меня есть скрипт, который принимает какой-то пользовательский ввод, очищает его и пытается заменить значение в строке. Я обнаружил, что замена str, которую я использую, не может соответствовать, например. 11 +tum
. Это почему? Могу ли я это как-то исправить? Управляет ли preg replace этим, и если да, то как это выглядит в preg replace?
Функция
Сценарий подготавливает строку ввода пользователя для полнотекстового запроса, все слова являются обязательными, поэтому каждый пробел заменяется пробелом +. Но некоторые фразы, такие как 11 tum
, должны быть доступны для поиска и, следовательно, заключаться в двойные кавычки. Недостатком является то, что скрипт, кажется, не соответствует некоторым фразам, хотя эхосигнал повторяется до того, как сравнение показывает, что они одинаковы, например, 11 tum
Код:
//processedQuery e.g. 'laptop 11 tum'
$ processingQuery = str_replace ("", "+", $ processingQuery);
обработанный эхо-запрос; // разбирает ноутбук +11 + tum
foreach($commonQuery as $value){ //$commonQuery = array("11 tum", "13 tum", "15 tum", "17 tum", "asus eee", "asus 1005","asus 1010")
//compile : simulated query format error
$simulatedErrorValue = str_replace(" "," +",$value);
echo simulatedErrorValue; //parses 11 +tum
$processedQuery = str_replace($simulatedErrorValue,'"'.$value.'"',$processedQuery);
}
echo $ processingQuery; // парсим ноутбук +11 + тум
// обмениваем 11 tum на asus eee (другой commonQuery и последний эхо-запрос $ processingQuery показывают правильное значение laptop +"asus eee"