|
Grep e вградена Unix команда, която се използва за търсене. Тази команда претърсва един или няколко текстови файла, търсейки съвпадение по зададен шаблон. По подразбиране Grep отпечатва редовете в които има съвпадение.
PHP може да стартира външни програми, тоест може и да извиква Unix команди, които са на разположение на вашия Unix или Linux сървър. Използвайки тези възможностти, можем лесно да създадем проста търсачка, която търси в рамките на сайта. В този урок ще създадем такава търсачка. Тя ще има html форма за въвеждане на търсения стринг и PHP код за изпълнение на търсенето и извеждане на резултата. Напълно логично е да поставим тези две части в един PHP файл. По-долу е показанo съдържанието на файла. За да изпробвате примера, запишете този код във файл с разширение „.php”. CODE
CODE
CODE
CODE
… И това е всичко! С използването на вградената команда Grep, отпада необходимостта да пишем PHP код за отваряне на файловете и търсене на съвпаденията. Трябва обаче да отбележем, че това е прост, но не и оптимален начин за създаване на „машина” за търсене, но ще ви помогне да разберете идеята и да научите как се извикват външни програми от PHP. Примерът не е подходящ за реално използване поради факта, че при всяко търсене се създава допълнително натоварване на сървъра, тъй като е необходимо да се обходят всички документи в сайта. Практически приложими решения са тези със създаване на сортиран списък на всички думи, които се срещат в документите от сайта. Към всяка дума се записва и местата където се срещат в сайта. Подходящо решение е това да са хиперлинкове заедно с част от текста или заглавието на документа в който се намира търсената дума. Така създадения списък може да се запише като таблица в база данни или като структуриран файл. Търсенето в индексирана таблица или сортиран структуриран файл е драстично по-бързо в сравнение с показания пример. Неудобството при този подход е, че списъкът с думите трябва да се прегенерира при всяка промяна на сайта, но с използването на подходяща програма за автоматично извличане на думите това не е чак толкова трудно. Бележки за примера:
Забележка: В този урок под „текстов файл” следва да се разбира, че става въпрос за всеки файл, който съдържа текстови редове, включително .html и .php файлове. Източник: bewebmaster.com
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









