Как искать в значениях формы POSTed с помощью регулярных выражений и возвращать результаты - PullRequest
0 голосов
/ 14 декабря 2010

Я работаю над проектом, в котором все участники и их информация хранятся в файле JSON. Я нахожусь в процессе создания формы поиска, и мне нужна помощь в том, как перебирать членов и проверять, есть ли точное совпадение или подобное совпадение.

Члены хранятся в переменной SESSION:

$_SESSION['members'] = json_decode($jsonFile);

но я не уверен, как использовать регулярные выражения для проверки совпадений (и не только точных). Например, если имя участника - «Джонатан», я бы хотел, чтобы этот результат был возвращен, даже если пользователь ищет «Джон». Является ли регулярное выражение правильным подходом? Любая помощь будет принята с благодарностью - спасибо!

-Manoj

Ответы [ 2 ]

0 голосов
/ 14 декабря 2010

Я думаю, что я буду использовать базу данных для хранения данных, а не JSON, чтобы вы могли использовать поиск LIKE, например,

SELECT * FROM users WHERE name LIKE 'Jon%'

Если вам абсолютно необходимо использовать JSON, вы могли бы перебрать всечленов и используйте регулярное выражение, например

preg_match('/^'.$term.'.*/i', $element, $matches);

, чтобы проверить их все.

0 голосов
/ 14 декабря 2010

Если содержимое $jsonFile является каким-либо массивом, вы можете найти preg_grep() использования, хотя оно не работает на многомерных массивах. Возможно, вам придется перебрать каждую отдельную запись члена и выполнить поиск соответствующих полей самостоятельно, например:

foreach ($_SESSION['members'] as $idx => $member) {
     ... match relevant fields...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...