【发布时间】:2012-03-03 12:14:52
【问题描述】:
我已经在网上浏览了很多帖子试图对此进行排序....
我正在将一个小型搜索功能集成到一个 php 脚本中......
我尝试了很多脚本,包括in_array(仅适用于完全匹配)和array_search
似乎没有任何效果....
我有一个脚本,它创建一个带有文件名的数组(全部采用“Random-Name-1.ext”格式) 但是脚本会删除文件扩展名,只留下文件名......
所有文件名都用-逐字分隔
所有单词的首字母大写...
数组被称为$files1;
搜索字符串被称为$search_string;
我要寻找的是沿着 foreach 循环检查搜索字符串是否包含在每个数组值的任何部分中,如果是,则将完整的数组值放入另一个名为 $search_results
因为我的脚本的下一部分分页需要数组 $search_results 来回显每个文件名并每页显示 10 个......
希望这是足够的信息,我已经为此工作了很长时间并且绞尽脑汁试图找到正确的代码......
提前致谢
....... ......
编辑.....
....... ........
得到了使用 preg_grep 的脚本.....但是我现在有一个小问题....
搜索代码前的脚本是为了获取搜索页面的url,q={search string}
然后修剪它,这样我就可以将 serach 字符串作为变量.....
我使用 str_replace 来更改页面网址
/games-search?q={search-string}
到{搜索字符串}
这很好,但是将结果分页为每页 10 个的脚本会将 ?page=2 添加到 url....
所以当我单击第 2 页时,将 url 更改为搜索字符串的 str_replace 现在不起作用,因为第 2 页的新页面 url 是
/games-search?page=2&q={search-string}
我一直在尝试做另一个 str_replace 以将连续页面 url 更改为仅搜索字符串,但我在使用正则表达式来定义页码时遇到问题.....
页码从 1 到大约 50 不等(从不超过 99,因此 2 位就足以匹配......
我今天一遍又一遍地尝试让这个正则表达式正确,但我不确定我是否以正确的方式去做.....
这是我最近的努力....
/games-search?page=(^[0-9][0-9]+)&
这就是我试图用“”替换的内容(例如,什么都没有)
&字符,我不想修改它,因为我已经有了我需要的数据)如果有人能提供帮助,再次感谢
决定不对每次搜索的结果进行分页,因为永远不会超过 15 个结果.....这很好,但我将实现 4 个字符的最小搜索长度,因此它不会显示 500字母 A 的结果:)
【问题讨论】:
-
您之前的 10 个问题已收到 16 个答案(我数过)。您需要重新审视以前的问题并在适当的情况下接受答案,否则人们将停止回答您的问题。
标签: php arrays search substring