Я молюсь, чтобы мой вопрос не сбивал с толку. Я создал поисковую систему, в которой люди могут выполнять поиск по городу и штату, например, "Атланта, Джорджия". Я хочу, независимо от того, как они его набирают, будь то Атланта, Джорджия, или Атланта, Джорджия, или Атланта, Джорджия, он все равно найдет результаты . Теперь я попытался сделать это с помощью PHP STR и не знаю, правильно ли это. Вот мой код. Спасибо.
$userinput=$request->input('cityandstate');
$stq=str_replace(",",", ", $userinput);
да, но иногда есть люди, которые не соблюдают это правило, поэтому я просто хочу подготовиться к этому






Это заменит любую запятую в строке ничем.
$stq = str_replace(",", "", $userinput);
См. http://php.net/manual/en/function.str-replace.php
str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
Это не поможет вам, если пользователь вводит Atlanta - GA, и вам может быть лучше использовать preg_replace http://php.net/manual/en/function.preg-replace.php
Хорошо, я попробую это
Я попробовал, и это сработало, быстрый вопрос, могу ли я также сделать что-то вроде этого Miami, fl, замененного на Miami, fl? Я пробовал сделать это $ stq = str_replace (",", ",", $ userinputt);
это не работает. Я сделал $ stq = str_replace (",", ",", $ userinputt); Это не заменяет Майами, Флорида, Майами, Флорида.
Похоже, у вас есть орфографическая ошибка? $ userinputt имеет дополнительный t? Это сработало для меня. $ userinput = "Атланта, Джорджия"; $ newString = str_replace (",", ",", $ userinput); echo $ newString;
но $ userinputt - это то, что я назвал переменной
Скопируйте код, который я написал выше, и попробуйте. Это определенно сработало для меня.
Вы можете использовать preg_replace, чтобы ввести пользовательский ввод в точную форму, требуемую вашей поисковой системой. preg_replace позволяет вам вводить все виды ввода с несколькими пробелами и с запятыми или без них:
$userinputs =array("Atlanta GA", "Atlanta,GA", "Atlanta , GA", "Atlanta, GA ", " Atlanta ,GA");
foreach ($userinputs as $userinput) {
$stq = preg_replace('/^\s*(\w+)\s*,?\s*(\w+)\s*$/', '$1, $2', $userinput);
echo "$stq\n";
}
Выход:
Atlanta, GA
Atlanta, GA
Atlanta, GA
Atlanta, GA
Atlanta, GA
Требует ли ваша поисковая система, чтобы город и штат были похожи на <город>, запятую <состояние>?