Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 27
1

Поиск по файлам без учета регистра

11.10.2013, 12:58. Показов 2239. Ответов 1
Метки нет (Все метки)

Доброго времени суток,
Очень нужна помощь в решении проблемы с регистрами...

Ситуация такая:
Есть некая директория "test/" в ней множество файлов формата "000000654_ТОРГ-2000, ООО_Акт сверки взаиморасчетов № 00000011408 от 08.10.2013.XLS".

Задача: осуществить поиск по файлам без учета регистра,дабы выдавал все варианты.

Я написал код:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<form align="center">
<input align="center"type="text" name="find" size="35">
<input type="submit" value="Искать">
</form>
<hr>    
<table border="1" align: "center">
    <?php
    $dir = 'test/';
    $files = scandir($dir);
    $find = $_GET['find'];
    
if (!empty($find)){ 
    foreach($files as $value) {
        $var = $value;
        if ($var != '.' and $var != '..') {
            list($var,) = explode('_Акт ', $var);
            list($var,) = explode(' от ', $var);              
            
            if (stristr($var, $find)) {
                echo "<tr><td class='col1'>";
                echo '<a href="/test/' . $value . '">' . $var . '</a><br />';
                echo "</td></tr>";
            }   
        }else {}
    }
}
    ?>
</table>
Код полностью рабочий и все ищет, однако не совсем так, как хотелось бы.
Например, если в поисковой строке я введу "торг", то я получу все результаты ТОЛЬКО с таким названием(или в которых присутствует это слово),т.е. с нижним регистром, но при этом основной файл с названием "...ТОРГ-2000..." не выведется =(

Однако если я введу "ТОРГ", то я получу как раз этот файл("...ТОРГ-2000..."). Почему такое? Я ведь использую stristr регистро-независимую функцию...

Очень надеюсь на помощь.Спасибо за внимание
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2013, 12:58
Ответы с готовыми решениями:

Поиск на русском языке слова в строке - без учета регистра
Как найти слово в строке??? $all_goods_data = 'мама мыла раму мылом'; $tov = 'мама'; ...

in_array без учета регистра
$array = array(Январь, Февраль, Март...); if (in_array('март',$array)) {} Как заставить эту...

Выделение русских слов без учёта регистра символов
Имеется строка, нужно выделить в ней слово, причём выделить если оно найдено и без чувствительности...

Проверка массива на наличие значения без учета регистра
Существует ли аналог функции in_array, который осуществляет проверку массива на наличие значения...

1
49 / 49 / 14
Регистрация: 21.03.2011
Сообщений: 113
11.10.2013, 13:12 2
по идеи дожно работать, просто переводим название файла и искомое слово в нижний регистр и ищем уже всё по нижнему регистру
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
   <?php
    $dir = 'test/';
    $files = scandir($dir);
    $find = mb_strtolower($_GET['find']);
    
if (!empty($find)){ 
    foreach($files as $value) {
        $var = mb_strtolower($value);
        if ($var != '.' and $var != '..') {
            list($var,) = explode('_акт ', $var);
            list($var,) = explode(' от ', $var);                
            
            if (stristr($var, $find)) {
                echo "<tr><td class='col1'>";
                echo '<a href="/test/' . $value . '">' . $var . '</a><br />';
                echo "</td></tr>";
            }   
        }else {}
    }
}
    ?>
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2013, 13:12

Сравнение слов без учета регистра, а так же написанное латиницей
Здравствуйте ! Как сделать что бы php понимал что &quot;Привет&quot; , &quot;привет&quot; , &quot;privet&quot; и &quot;PRIVET&quot; одно...

Выделение результатов поиска (без учета регистра)
Всем привет, помогите плиз. Никак не получается выделить результыта поиска. Есть скрипт который...

Как найти слово в тексте без учета регистра?
Всем привет! Как найти слово в тексте без учета регистра? Пробовал так: &lt;?...

Поиск по БД без учета регистра
Здравствуйте! Вопрос такой как сделать поиск по базе данных независимым от типа первой буквы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru