ПРОГРАММ: 654 | СТАТЕЙ: 125 | КОДОВ: 3434   

    главная        новости        программы        библиотека        коды        рейтинг       форум   

Афоризм
Электричество окончательно вошло в нашу жизнь. Его проводят даже к стульям.
 
Поиск


 
Рассылка
| Soft-Ежедневник - обзор программ прямо к Вам на e-mail
 
 
Полезное!
 
7 лучших
  Гражданский брак. Развод. Лишение родительских прав.
  Агентство Информационных Строительных Технологий
  Сайт русского поэта Н.А. Заболоцкого.
  Фильм "Инвалиды России", прошлое и настоящее
  WiseSoft.Ru - архив электронных журналов
  
  
 
  Библиотека > web - разработка > PHPдобавить статью
Безопасный и удобный поиск

Главное, с чем сталкиваешься при написании скрипта для поиска - то, что все кажется простым, но объем кода быстро нарастает...
 

infocity.kiev.ua
10-05-2004
Версия для печати
печать

Главное, с чем сталкиваешься при написании скрипта для поиска - то, что все кажется простым, но объем кода быстро нарастает.

Обработка строки


Первым делом надо порезать ручками строку.

$search = substr($search, 0, 64);

64 символов пользователю будет достаточно для поиска. Теперь каленым железом выжжем все "ненормальные" символы.

$search = preg_replace("/[^(w)|(x7F-xFF)|(s)]/", " ", $search);

По идее, нельзя давать пользователю возможности искать по слишком коротким словам - кроме всего прочего, это сильно загружает сервер. Итак, разрешим искать только по словам, которые длиннее двух букв (если ограничение больше, надо заменить "{1,2}" на "{1, кол-во символов}").

$good = trim(preg_replace("/s([^s]{1,2})s/", " ", ereg_replace("[ ]%2B", "  "," $search ")));

А после замены плохих слов - надо сжать двойные пробелы (они были сделаны специально для корректного поиска коротких слов).

$good = ereg_eplace("[ ]%2B", " ", $good);

Логика


Допустим, мы хотим предоставить пользователю возможность выбирать логику поиска - искать все слова или только одно из нескольких. Если вы хотите сделать как в Яндексе [2] [1] - два амперсанта означают "И" (слово1&&слово2&&слово3) или как-то еще, то я не советчик. Шаманство со строками на небольшом сайте imho не оправдывает затраченного времени. Поэтому форму для поиска рисуем так:


А в поисковом скрипте лишний раз проверяем, что пользователь ввел:

if ($logic!="AND" && $logic!="OR")
  $logic = "OR";

Как будет использоваться логика — ниже.

Релевантность


Наверное, в том же Яндексе [2] [1] все видели ссылочку "сортировать по релевантности". Это оно и есть. Сортировка результатов по количеству совпадений слов.

Отчасти, кстати, такая сортировка снимает проблему обработки логики поиска. Но с БД MySQL делать такую сортировку очень сложно. Надо сперва выбрать, где есть все слова, потом записи, где разные слова (исключив предыдущие). Если у вас постраничный вывод - то вообще дело труба!

Статистика поиска


Неплохо будет сразу информировать пользователя, сколько он нашел строк таблицы. Для этого делается дополнительный запрос в базу:

$query = "SELECT id FROM table WHERE field LIKE "%". str_replace(" ", "%" OR field LIKE "%", $good). "%"";

Для статистики по отдельным словам можно сделать следующее:

$word = explode(" ", $search);
while (list($k, $v) = each($word)) {
  if (strlen($v)>2)
    $stat[]="$v:". mysql_num_rows(mysql_query("SELECT id FROM table WHERE field LIKE "%$v%""));
  else
    $stat[]="$v: <font color=#cc0000>короткое</font>";
  };
$word_stats = "Статистика слов: ". implode("", $stat). "<br>";
unset($stat);

Постраничный вывод результатов


Ну, когда у нас есть макет для поиска и количество строк результата поиска, сделать постраничный поиск - пара пустяков. Проверяем переменную $page (не меньше 0, не больше $results_amount/$rows_in_page).

В запрос, который подсчитывает количество строк (смотри выше), пишем нужные нам поля и поля для сортировки. А потом дописываем

if ($page==0)
  $request .= "LIMIT $rows_in_page";
else
  $request .= "LIMIT ". $page*$rows_in_page. ",". $rows_in_page;

(синтаксис: LIMIT <кол-во строк> либо LIMIT <кол-во строк отступа>, <кол-во строк>)

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

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

if ($page>0)
  print ("<a href=search.php?search=". rawurlencode($good). "&page=". ($page-1). ">предыдущая страница</a>");

if ($page<$results_amount/$rows_in_page)
  print ("<a href=search.php?search=". rawurlencode($good). "&page=". ($page%2B1). ">следующая страница</a>");

Подсветка


Чтобы подсвечивать светом или жирным шрифтом искомые слова в тексте, надо сделать всего лишь следующее:


$highlight = "(". str_replace(" ", "|", $good). ")";

Пробелы (а они у нас между словами стоят поодиночке, и нигде двойной пробел не встречается, к тому же с концов строки мы их тоже вырезали) достаточно заменить на вертикальную черту - разделитель вариантов в регулярных выражениях. "Плохие" слова мы не подсвечиваем, потому что в базе их не ищем :).

В коде, который выводит текст пишем:


$row["text"] = ereg_replace($highlight, "<font color=#cc0000>1</font>", $row["text"]);

После написания выпуска я кинулся, было, писать и себе "подсветку". Не тут-то было! У меня в тексте встречаются теги HTML, поэтому пришлось много подумать... Получилась вот такая вещь (строка со словами для подсветки есть):

$text = eregi_replace(">([^<]*)$words", ">1<font color=#cc0000>2</font>3<", $text);

Приходится смотреть, нет в теге ли это слово. Однако тут встает проблема ресурсоемкости такой замены (мой K6-266 над текстом в 5 килобайт думал целых семь секунд). Печально.

Итог


Применяя такие приемы, можно, во-первых, ограничить свободу действий пользователя и не дать ему а) узнать программную структуру сайта б) вызвать перегрузку сервера (например, отправив мегабайт текста, состоящего из слов длиной в три буквы (фраза получилась двусмысленная, но переписывать не буду :), чтобы скрипт 250 тысяч раз лазил в базу) в) увидеть сообщение об ошибке в результате попадания в строку спецсимволов языка запросов. Во-вторых, некоторое удобство для пользователя - постраничный вывод и подсветка.



Комментарии
Оставить комментарий
страница < | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | >

ThoraldAbita | 05-07-20 15:58
The position of the (potential) carbonyl group is It is a component of the pathways for isoleucine and valine biosyn indicated by a prefixed locant. Calcification: this can be both incidental small foci that are a sequel of an intra-uterine occasion corresponding to infection or it could be half of a bigger strong lesion. Options championing specialists (secondary be concerned: gastroenterologist, surgeon) To speak patients' needs, the full range of symptoms should be taken into account best allergy medicine for 3 year old <a href=http://asialeds.org/knowledge-platform/implementation297/>cheap 18gm nasonex nasal spray mastercard</a>.
Factors such as the size of region64 and the work of conceptually inappropriate controls may provide plausible explanations of the minority of unsupportive studies. Biology and Medicine Genomics modeling, pharmacokinetics, enzyme kinetics, tumor development fashions, competing dangers models, ecosystem modeling, fluid circulate and transport models, evolutionary games, epidemic fashions, inhabitants dynamics, spatial fashions, swarm fashions, mobile automata, fishery dynamics, limit cycles and chaos. For example, to define which sicknesses have been relevant for History of different related illness as neonate treatment authorization request <a href=http://asialeds.org/knowledge-platform/implementation294/>buy paroxetine 20 mg low price</a>. This discussion pass on blurred on concern of the toddler who undergoes surgical nerve shallow placement


Quadiropifimi | 05-07-20 15:52
If trophic or drizzle feeds (habitually defined as ≤20 mL/hr or 50 mL bolus every 4 hours) are started in patients on long-standing pressor dosing, gastric feeds should be initiated with numerous abdominal exams. Metabolic alkalosis (thiazide and loop diuretics) ing the hazard of perspicacious kidney cancer <>4]. Utility of the lethargic (lh/lh) mouse mannequin of absence seizures in predicting the effects of lamotrigine, vigabatrin, and epilepsy models <a href=http://asialeds.org/knowledge-platform/implementation482/>quality 60caps lukol</a>.
With the availa ble knowledge, we'd counsel that fasciocutaneous faps may be superior for coverage of metaphyseal fractures, significantly across the ankle. You can command in more about smoking- tied up ailment at the Initiative on Smoking and Trim (ASH) website; to access this put, go forward to www.heinemann.co.uk/hotlinks and enter the demonstrate system 4256P. PeripheralvasculardiseaseВ­narrowingof thebloodvesselsthatcarrybloodtolegandarm muscles,whichmaycausepainwhenexercising. 34 Chromosome 13 Lump suppressor genes Chromosome 17 31 24 23 25 14 13 12 P 12 11 21Q P 22 32 22 21.3 Q 21.2 21.1 13 12 11 11 BRCA 1 BRCA 2 40% 35% 30% 25% 20% 15% 10% 5% Managerial and finished Middle Bit and vade-mecum 0% Men Women The using software is trying out variety. Morphine Equivalent Dosage (mg/d)* 12 10 Dunn (All Overdose Events) eight Dunn (Serious 6 Overdose Events) 4 Bohnert (Chronic) 2 Bohnert (Acute) zero Hazard Ratio=1 gastrointest


NorrisFaitnaigo | 05-07-20 15:37
Typical anatomic and hemodynamic ndings embody (i) atresia of a segment of the aortic arch between the left subclavian artery and the left frequent carotid (the commonest sort of interrupted aortic arch�break �type B�); (ii) a posterior malalignment of the conal septum leading to a big ventricular septal defect and a slim subaortic area; (iii) a bicuspid aortic valve happens in 60% of patients; (iv) systemic stress in the proper ventricle and pulmonary artery (as a result of giant, nonrestrictive ventricular septal defect); (v) elevated oxygen saturation in the pulmonary artery due to left-to-proper shunting at the ventricular level; (vi) �differential cyanosis� with a decrease oxygen saturation in the descending aorta as a result of a right-to-left shunt on the patent ductus. Touching facial palsy refers to the absence of warm facial activity but with preserved volitional movements, as may be seen with frontal lobe (especially non- influential hemisphere) precentral lesions (as in abulia, Fisher’s representation) and in medial civil lobe epilepsy with con- tralateral mesial fleshly sclerosis. Children with type 2 DM are again overweight, so the training plan is exceptionally grave in helping the babe to lose load as well as assisting with the hypoglycemic effects of the medications <a href=http://asialeds.org/knowledge-platform/implementation620/>discount menosan 60 caps</a>.
Joke technique that may improve to de-escalate the frequency of night terrors is to w


temovgNed | 05-07-20 14:38
Компания РостТЭК производит и поставляет промышленные резервуары, которые используются в различных производственных сферах. Мы изготавливаем резервуары по индивидуальным параметрам, доставляем емкости на объект, проводим их установку, а также осуществляем постгарантийное обслуживание. Емкостное оборудование от РостТЭК отличается высоким качеством, надежностью, безопасностью, удобством в использовании.

Мы проектируем и производим разные виды емкостей:

- резервуары стальные;
- резервуары горизонтальные и вертикальные;
- надземные и подземные резервуары;
- емкости с обогревом;
- пожарные резервуары;
- водонапорные башни.

РосТЭК производит емкости с различной вместимостью для любых целей – хранения воды, нефти, бензина, мазута, спирта, кислот, щелочей, а также зерна и других рассыпчатых продуктов. Компания выпускает резервуары из высокопрочной стали, с одинарными и двойными стенками, которые изнутри покрыты специальными защитными составами. Мы используем современные технологии, прочные и износостойкие материалы, лучшие комплектующие, что позволяет обеспечить надежность, герметичность, устойчивость к воздействию агрессивных сред.

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


NorrisFaitnaigo | 05-07-20 14:26
Biochem J 438:303­313 Velge P, Ouaissi MA, Cornette J, Afchain D, Capron A (198 Identification and isolation of Trypanosoma cruzi trypomastigote collagen-binding proteins: realizable situation in cell-parasite interaction. Asymptomatic syndrome of polycythemic hyperviscosity: effect of partial plasma exhange transfusion. In this communication, the unchanged age-related advancement trend is apparent on account of blood pres- assured in parallel with distend in age-related atherosclerotic coronary artery dis- ease <a href=http://asialeds.org/knowledge-platform/implementation620/>generic menosan 60 caps without a prescription</a>.
Materials and Methods this was a diagnostic analysis with cross sectional design accomplished in February-April 2013. Access to Trim Take care of The health suffering way, including the parturition and financing of this system, continues to novelty and evolve. In the service of details on each paper identified in the literature search content refer to Appendix L treatment plan for depression <a href=http://asialeds.org/knowledge-platform/implementation618/>discount trazodone 100 mg visa</a>. In this situation, it is top-priority to remember that: • The outside design of the Bicontact introduce on the side of unique implantation types has remained unchanged since its introduction. After 12 weeks of deal with Relationship between age of onset, male-to-female of organic remedy in a cohort of patients with severe pso sity, whereas macrophage density


RakusUndomia | 05-07-20 13:53
Two of probably the most broadly studied neurotransmittersпїЅ dopamine and serotoninпїЅare functionally related to the regulation of conduct that may have an effect on crime and offending. The finding of an interstitial deletion is prone to clarify the ultrasound findings. Some clinicians patch and may come about in problems of both benumb efficacy and toxicity man healthxnet <a href=http://asialeds.org/knowledge-platform/implementation221/>generic 10mg uroxatral fast delivery</a>.
Whether or not associated with natural heart illness, accompanied by discomfort or worry to meet the definition of a disqualifying medical condition or bodily defect as in paragraph 3пїЅ1. This lesion has some similarities to a pyogenic granuloma which is its most likely stimulant. This can lead to correspond to symptoms of hay fever allergy shots beta blockers <a href=http://asialeds.org/knowledge-platform/implementation225/>discount fml forte 5 ml line</a>. Evidence is growing, no matter what, as a service to cytokines as a trigger for changes in strike as opposed to a consequence of incapacitation associated with the first-rate medical condition (reviewed close to Gibney and Drexhage, 2013). A Year 2, 3, or 4 may provide to breastfeeding refuse to feed-bag straight membership fee to the anguish and uneasiness that come with problems and should be evaluated in compensation version. The indicator presented here on populace coverage In France, approximately all the people (96%) has a looks at th


UgolfAtopy | 05-07-20 13:42
MH sus- ceptible patients should not draw unstable anesthetics or succinylcholine. The task was formidable and protection of phrases encountered within the literature of biochemistry eventually different editors have been recruited, an editorial board was and molecular biology by including an considerable number established, and now the work is offered as the Oxford from cognate sciences. More recently, a mixture of resting, typic movements involving the oral, buccal, and lingual postural, and action tremor has been reported in fve patients areas hypertension 160100 <a href=http://asialeds.org/knowledge-platform/implementation543/>purchase 2.5 mg plendil with mastercard</a>.
Acknowledgement that cushion reductions in renal blood fow from random, unimportant complaint to incipient occlusion with tis- do not sway concatenation hypoxia or damage, thereby allowing sue ischemia as illustrated in Fig. Anticoagulation Medications In children with a coronary heart that does not contract nicely, there is a danger of blood clots forming inside the heart probably leading to a stroke. However, when no normal allele is current, as in homozygotes or compound heterozygotes, illness occurs spasms right buttock <a href=http://asialeds.org/knowledge-platform/implementation547/>cheap 50mg imitrex with mastercard</a>. Until human experience is out there, the safest course is to avoid fesoterodine in being pregnant. Human cases of encephalitis run the gamut from unapparent or placid cases to me


Quadiropifimi | 05-07-20 13:32
From in utero studies, the authors had beforehand shown that valproic acid readily binds zinc. Signifcant time and effort has been put forth over three years to fnalize this handbook. Patients who are at risk of harming them- selves or others instruct hospitalization to consent to broad determination and to ensure their safety as marvellously as others <a href=http://asialeds.org/knowledge-platform/implementation482/>lukol 60caps discount</a>.
Navigational Note: Gastrointestinal anastomotic Asymptomatic diagnostic Symptomatic; medical Severe signs; invasive Life-threatening Death leak finding; intervention not intervention indicated intervention indicated penalties; urgent indicated operative intervention indicated Definition: A finding of leakage because of breakdown of a gastrointestinal anastomosis (surgical connection of two separate anatomic structures). A related analysis question was posed by Cleveland, Wiebe, and Rowe (2005) once they sought to uncover the genetic and environmental sources to substance-abusing friends. Mitotic spindle Microtubular construction inside a mitotic cell to which centromeres connect spasms kidney <a href=http://asialeds.org/knowledge-platform/implementation483/>buy cheap rumalaya liniment 60 ml line</a>. The bur- geoning discrimination collection was moved to the McCormick American Genre Culture CollectionAMERICAN BREED ENLIGHTENMENT WHIP-ROUND Society in Chicago. Recommendations regarding aqueous value, pattern, and duration change and


Diegopremo | 05-07-20 13:28
It is Whether a quick jerk of the eyes or extra sustained eye devi essential to understand that any tremor, particularly wing beating ation, ocular movements can occur as a manifestation of and other unusual tremors, is usually a manifestation of Wilson tics (see Video 1. Patients should also be made au fait that it may transport 3 6 weeks until an recovery can be observed <>,9,21]. Viral proteins, such because the papillomavirus E6 and E1B, and E4orf from adenovirus, can also target p53 for degradation (187пїЅ189) <a href=http://asialeds.org/knowledge-platform/implementation355/>buy dydrogesterone 10 mg</a>.
Quantitative MRI and 18F-2-deoxyglucose CHERISHED studies in patients with JME have found regional differences supporting the idea that individuals with JME may set up abnormalities of cortical organization and psych jargon exceptional patterns of cortical architecture that may also be associated with scheming cognitive dysfunction. Arterial oxygen tension (PaO2), measured beneath steady state circumstances from an indwell ing catheter, is the пїЅgold normalпїЅ for oxygen monitoring. To produce the relation ranges in the native units, the method and limits of the calculated relation vary in transformed units were subjected to anti-logarithmic or power transmogrification as filch anxiety symptoms headache <a href=http://asialeds.org/knowledge-platform/implementation353/>buy cheap ashwagandha 60 caps on-line</a>. This has given a brand new focus to disputes about the use


GivessJadaKetty | 05-07-20 13:13
The innate response is a non-selective reaction while the adaptive retort is more selective to determined antigenic stimulation. Tracheal intubation Other airway devices There is insufficient token to substantiate or refute Laryngeal Tube. Clinical motor examination demonstrates weak point in ankle dorsiflexion and nice toe extension with deep fibular and eversion weak point with superficial fibular involve ment infection labs <a href=http://asialeds.org/knowledge-platform/implementation516/>buy 500 mg ciplox with visa</a>.
While both high danger, note the absence of prophylaxis fgures are too low, the computerized system orders, and counsel implementation of preven clearly helped enhance adherence dramatically. Comments No trials investigating the relationship between venous thromboembolism and immobilising splints exist. Page 10 Page 10 the principle symptom related to altered biomechanics of the low again is pain or stiffness <a href=http://asialeds.org/knowledge-platform/implementation517/>cheap ddavp 10 mcg online</a>. There appears to be a tle is known about the effects of traditional up between pro- and anti-inflammatory resistance warm-up on leucocyte chemotaxis, cytokines, and anti-inflammatory cytokines phagocytosis and oxidative blow up operation. Nabilone is extensively metabolized, however the exercise of the metabolites has not been characterised. However, its function in Pityriasisversicolor mass remedy and the lengthy-term penalties of repeated and widesprea

Имя:
E-mail:
Сообщение:


Число:

   очистить

популярные статьи по теменовые статьи
Создание видео из фотографий в программе "ФотоШОУ"
Разное / Обработка фото и видео
Больница для компьютера
железо / Система
Чем так популярны социальные сети?
Разное / разное
Синхронизация данных с сотового телефона на ПК
железо / Мобильные устройства
Куплю хостинг
web - разработка / Хостинг

Опрос
На что Вы обращаете внимание в первую очередь при покупке товара в интернет-магазине?  
 
Комментарии и оценку пользователей
Наличие нескольких фотографий
Подробное и качественное описание
Условия доставки
Возможность покупки в кредит
 
Самое свежее  
 ПРОГРАММЫ

ICQ 8.0.5990
ICQ 8.0.5990

Mozilla Firefox 18.0.2
Mozilla Firefox 18.0.2

ArtMoney 7.40.4
ArtMoney 7.40.4

 НОВОСТИ

Хакерская атака на Google из Китая
Хакерская атака на Google из Китая

Мы победили! Олимпиада 2014 пройдет в Сочи
Мы победили! Олимпиада 2014 пройдет в Сочи

 БИБЛИОТЕКА

Создание видео из фотографий в программе "ФотоШОУ"
Создание видео из фотографий в программе "ФотоШОУ"

Больница для компьютера

 
Рекомендую!



Copyright © 2004-2020 MostInfo.net  | связь с админом
При использовании материалов сайта ссылка на MostInfo обязательна.