Мой код, кажется, не позволяет мне помещать пробелы в окно поиска, если я искал "привет мир", он будет искать его как "helloworld". Я использую preg_replace
поэтому людям не разрешается помещать другие символы ("'! @# $% ^ &() ~' + -//) ни один из них, кроме букв. Почему он заменяет пробелы?
Код:
$search = preg_replace ("#[^0-9a-z]#i","",$search);
Ладно, позволь мне разобраться с тобой. Поскольку это ваше регулярное выражение ищет
[^0-9a-z]
^ - означает отрицание в регулярном выражении (ну не совсем, это означает "все, кроме..."), а затем за ним следуют два диапазона: 0-9 и az. Это означает, что любой символ, который не относится к этим двум точным наборам, будет улавливаться этим выражением. Это включает арабские символы, специальные символы и пробелы. Чтобы заставить его работать так, как вам нужно, вам нужно будет добавить пробел в выражение:
[^0-9a-z ]
Вы должны иметь в виду, что регулярные выражения очень буквальны, и они не дают почти никакой свободы.