Чувствительность к регистру

Я нашел PHP скрипт поиска в Интернете, который прекрасно работает для меня. У меня проблемы с чувствительностью к регистру. этот поиск связан с вводом html-формы и возвращает только результаты, соответствующие искомому регистру. Это можно обойти?

<?php
//////////////////////
// © Nadav Ami 2009 //
//     Version 1.2  //
//     Edited By  //
//    Geoff Bolton //
//////////////////////


function scandir_r($dir){
$files = array_diff(scandir($dir), array(".", ".."));
$arr = array();
foreach($files as $file){
$arr[] = $dir.DIRECTORY_SEPARATOR.$file;
if(is_dir($dir.DIRECTORY_SEPARATOR.$file)){
$arr = array_merge($arr, scandir_r($dir.DIRECTORY_SEPARATOR.$file));
}
}
return($arr);
}

$dirname = "./";
$findme = "/".preg_quote($_POST["search"], "/")."/";
$files = preg_grep($findme, scandir_r($dirname));
if(sizeof($files)){
foreach($files as $file){
$_file = $dirname.DIRECTORY_SEPARATOR.$file;
echo "<a href=\"$_file\">$file</a><br/>";
}
}
else{
echo "Nothing was found.";
}
?>

0

Решение

Вы можете использовать поиск без учета регистра. Это продемонстрировано в первом примере preg_match (http://php.net/manual/en/function.preg-match.php) и должен также работать на preg_grep, так что это должно сработать:

// [...]
$findme = "/".preg_quote($_POST["search"], "/")."/i";
// [...]
1

Другие решения

Других решений пока нет …