Реклама на сайте Advertise with us

И сново пхп. написал код

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 12/01/14 в 21:13       Ответить с цитатойцитата 

Код: [развернуть]


Смысл кода:
есть список имен примерно 20к, все они записаны в файл с новой строки. Через поисковую форму осуществляем поиск к примеру Alex (регистронезависимый поиск) если в файле есть 100% совпадение, а так же слова, где содержится Alex то выводим и их. Но т.к. есть 100% то его выводим отдельно, а все остальное как схожее.
Код написан, хотелось бы услышать мнение. Возможно сделал что то не так или всё не так, но оно работает. Интересно мнение специалистов.

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 12/01/14 в 21:25       Ответить с цитатойцитата 

Lexikon писал:
но оно работает. Интересно мнение специалистов

Работает ? Не трожь smail101.gif

Можно конечно написать по другому, начиная от контроля ошибок и до использования абстракций, но будет ли смысл ?

Я бы только с stristr искал. Просто по привычке старой.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

8
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 12/01/14 в 22:02       Ответить с цитатойцитата 

Stek писал:
Я бы только с stristr искал.

icon_smile.gif
хм, так это и разумней будет тогда можно убрать лишнюю функцию перевода в нижний регистр

Про ошибки понял, а вот про абстракции нет.

0
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 12/01/14 в 22:11       Ответить с цитатойцитата 

странно, может что то упускаю, заменил
Код: [развернуть]

на
Код: [развернуть]


и
Код: [развернуть]

на
Код: [развернуть]


при обращении с большой буквы, пишет Not Found, с маленькой всё гуд

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 12/01/14 в 23:07       Ответить с цитатойцитата 

Если имена сохранить одной строкой через какой-нибудь нейтральный разделитель типа |, то задача поиска точного совпадения решается в три строки:

Код:
$names = file_get_contents('data.dat');
$search_query = 'Dulce Huels';
echo preg_match('/' . preg_quote($search_query) . '/', $names) ? $search_query : 'Not Found';


и по-меньшей мере раз в 5 быстрее перебора массива. icon_smile.gif

7
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 13/01/14 в 00:10       Ответить с цитатойцитата 

Lexikon писал:
Про ошибки понял, а вот про абстракции нет.

Абстрактные классы, наследования. Сейчас в пхп идет мания раздувания кода за счет "правильной структуры кода". При том даже там, где это нафиг не надо.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

10
 

Я держусь там. Счастья мне, уд

С нами с 24.05.05
Сообщения: 16096
Рейтинг: 219

Ссылка на сообщениеДобавлено: 16/01/14 в 17:14       Ответить с цитатойцитата 

Yacc писал:
Если имена сохранить одной строкой через какой-нибудь нейтральный разделитель типа |, то задача поиска точного совпадения решается в три строки:

Код:
$names = file_get_contents('data.dat');
$search_query = 'Dulce Huels';
echo preg_match('/' . preg_quote($search_query) . '/', $names) ? $search_query : 'Not Found';


и по-меньшей мере раз в 5 быстрее перебора массива. icon_smile.gif


насчет быстрей не знаю, но можно и не объединять в одну строку а просто применить квалификатор g - мультистрочный поиск icon_biggrin.gif

Здесь не место для бесед: грохот на пределе
Как при старте ста ракет, как девятый вал

8
 



С нами с 03.02.11
Сообщения: 842
Рейтинг: 301

Ссылка на сообщениеДобавлено: 16/01/14 в 17:37       Ответить с цитатойцитата 

Оборотень писал:
применить квалификатор g - мультистрочный поиск icon_biggrin.gif
жабаскриптом переигрался? smail101.gif
в пхп это m

8
 



С нами с 03.02.11
Сообщения: 842
Рейтинг: 301

Ссылка на сообщениеДобавлено: 16/01/14 в 17:47       Ответить с цитатойцитата 

а вообще, конечно, у ТС много буков
Код:

$data = file_get_contents('data.dat');
$search = strtolower('Alex');

$prec = array();
$other = array();

preg_match_all('~^.*'.preg_quote($search).'.*$~mi', $data, $m);

foreach($m[0] as $val) {
   $val = trim($val);
   if(strtolower($val) === $search)
      $prec[] = $val; //собираем точные совпадения
   else
      $other[] = $val; //собираем, где просто есть совпадения
   }
//ну а дальше
if(count($prec)) //eсли есть точные
   foreach($prec as $val)
      echo $val."<br>";
//ну и так же с неточными
if(count($other)) //eсли есть неточные
   foreach($other as $val)
      echo $val."<br>";

8
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »