大家好,我有很多搜索,我试图让它工作。 以下脚本将文件递归搜索到所有文件夹中。
if(isset($_POST['cmdsearch']))
{
$search = $_POST['search'];
if (@get_magic_quotes_gpc())
{
$search = stripslashes($search);
}
$it = new RecursiveDirectoryIterator("jpg");
foreach(new RecursiveIteratorIterator($it) as $file)
{
if (false !== stripos($file, $search))
{
echo "<a style='padding:10px 10px 5px 5px; text-decoration:none; line-height:15px;' class='smamal' target='_blank' href='http://www.domain.com/files/";
echo $file;
echo "'>";
echo "www.domain.gr/files/";
echo $file;
echo "</a>";
echo "<br />";
}
}
}
else
{
echo "<p></p>";
}
我想补充的内容:
我正在尝试添加类似这样的代码
/\b([a-z]+[A-Z]+[a-zA-Z]*|[A-Z]+[a-z]+[a-zA-Z]*)\b/
谢谢你的时间。
答案 0 :(得分:0)
为什么不将搜索和文件名转换为小写。这样您将获得不区分大小写的匹配。另一个选项是在正则表达式中为不区分大小写的匹配设置标志i
。为了匹配前四个字符,请在比较它们之前在两个字符串上使用substr
。
如果您真的搜索大型数据集,请考虑使用类似弹性搜索的内容。这甚至可以为您提供模糊搜索(例如,空格线也将返回标题的结果)。
答案 1 :(得分:0)
我认为这是我需要嵌入代码中的内容。一个函数来转换所有重音字符然后使它们小写。 在FILENAME和SEARCH中,但我不知道如何嵌入它。请帮忙吗?
function normaliza ($string){
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ
ßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuy
bsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
$string = utf8_decode($string);
$string = strtr($string, utf8_decode($a), $b);
$string = strtolower($string);
return utf8_encode($string);
}