如何使用正则表达式搜索POSTed表单值并返回结果

时间:2010-12-14 18:10:41

标签: php regex json search forms

我正在开展一个项目,其中所有成员及其信息都存储在JSON文件中。我正在创建搜索表单,我需要有关如何遍历成员并检查是否存在完全匹配或类似匹配的帮助。

成员存储在SESSION变量中:

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

但我不确定如何使用正则表达式来检查相似的匹配(而不仅仅是精确的)。例如,如果成员的名字是“Jonathan”,我希望即使用户搜索“Jon”也会返回该结果。正则表达式是正确的方法吗?任何帮助将不胜感激 - 谢谢!

-Manoj

2 个答案:

答案 0 :(得分:0)

如果$jsonFile内容是某种类型的数组,您可能会发现preg_grep()的使用,尽管它不适用于多维数组。您可能必须遍历每个单独的成员记录并自己grep相关字段,例如:

foreach ($_SESSION['members'] as $idx => $member) {
     ... match relevant fields...
}

答案 1 :(得分:0)

我认为我将使用数据库来存储数据而不是JSON,以便您可以使用LIKE搜索,例如

SELECT * FROM users WHERE name LIKE 'Jon%'

如果你绝对必须使用JSON,你可以遍历所有成员并使用像

这样的正则表达式
preg_match('/^'.$term.'.*/i', $element, $matches);

全部检查。