Php 允许多词搜索,而不强制用户使用逗号删除

Php 允许多词搜索,而不强制用户使用逗号删除,php,html,Php,Html,我和几个朋友在做一个小项目,我负责大部分PHP代码。我们目前有一个半工作网站,您可以在其中输入配方成分,并找到完整的配方来创建 我目前遇到的问题是,允许用户输入多个单词成分(红糖、天使发面食等),而不强制用户使用逗号作为分隔符 我目前正在使用每个无效字符进行分隔(空格、逗号、数字等),但这只允许搜索1个单词的成分 我曾考虑过可能创建一个包含所有成分的数组,检查用户的输入是否与其中任何一种匹配,然后将其挑选出来,但我不确定这是否是最好的解决方案 一个有文本框的基于javascript的解决方案怎么

我和几个朋友在做一个小项目,我负责大部分PHP代码。我们目前有一个半工作网站,您可以在其中输入配方成分,并找到完整的配方来创建

我目前遇到的问题是,允许用户输入多个单词成分(红糖、天使发面食等),而不强制用户使用逗号作为分隔符

我目前正在使用每个无效字符进行分隔(空格、逗号、数字等),但这只允许搜索1个单词的成分


我曾考虑过可能创建一个包含所有成分的数组,检查用户的输入是否与其中任何一种匹配,然后将其挑选出来,但我不确定这是否是最好的解决方案

一个有文本框的基于javascript的解决方案怎么样。当你开始打字时,它会在下面弹出另一个文本框,提示你可以分离多种成分。将它们命名为“配料[]”,这样$_POST['contracents']在php中是一个数组,您可以遍历它们


更简单的解决方案是按照您所做的操作,用空格、逗号等分隔,然后根据与成分列表匹配的关键字的数量对搜索结果进行排序。

您是否考虑过在UI中处理此问题,并在传递给PHP之前注入逗号-类似于此网站上标签的工作方式?您还可以获得自动完成/智能感知的好处。如果要与另一个数组进行匹配,您可以使用array_intersect。唯一需要记住的是,匹配是区分大小写的,因此您可能希望使用strtolower执行一个数组映射调用。我正在考虑这样做,您认为我可以通过javascript自动完成,然后在每次自动完成后添加一个逗号吗?