PHP är ett kraftfullt skriptspråk som oftast används av webbutvecklare för att skapa dynamiska webbsidor och webbapplikationer . Utbudet av funktioner som PHP ger en programmerare är nästan oändliga , att kunna skapa data som ska skickas till en användare samt manipulera filer och poster databas på bakändan . På grund av detta , är PHP ett utmärkt val av språk om du behöver för att bygga en sökmotor till din webbplats . Instruktioner
1
Skapa sökmotorns webbformulär . I det här exemplet kommer filen för PHP-skript namnges " search.php . " Formuläret kommer att behöva en låda textinmatning och en "Skicka" -knappen .
2
Skapa en funktion för att söka serverns filer och kataloger . Göra en funktion möjliggör enkla sökningar i underkataloger . Funktionen kommer att ha en obligatorisk parameter , vilket kommer att vara söksträngen .
< ?
Funktionen Sök ( $ sökord ) {
}
> Addera 3
Lägg en valfri parameter för underkatalog vägar . Om denna andra parametern inte anges , kommer funktionen automatiskt att söka den aktuella katalogen .
Funktionen Sök ( $ sökord ) {
om ( func_num_args ( ) > 1 ) $ dir = func_get_arg ( 1 ) ;
annars $ dir = " . ";
}
4
Läs innehållet i katalogen till en array. Lägg denna kod till sökningen ( ) funktionen
$ dirStream = opendir ( $ dir ) , .
While ( $ nextFile = readdir ( $ dirStream ) ) $ dirArray [ ] = $ nextfile ;
closedir ( $ dirStream ) ,
5
iterera igenom innehållet i katalogen array med en foreach loop
foreach ( $ dirArray som $ thisFile ) { .
}
6
Skapa en variabel för att lagra den relativa sökvägen från PHP-skript till filen som söks . Lägg till detta inom foreach loop
$ thisPath = $ dir " /" $ thisFile , . . .
7
Lägg en linje för att hindra sökmotorn från att visa resultat från dolda filer . ( t.ex. " . htaccess " ) katalog
om ( substr ( $ thisFile , 0,1 ) == " . " ) fortsätter ,
8
Kontrollera om den aktuella filnamnet i $ dirArray är faktiskt en underkatalog , i vilket fall det kommer att lagras i en array för att söka igenom senare.
if ( filtyp ( $ thisPath ) == " dir ") {
$ subdir [ ] = $ thisFile ;
fortsätta ,
}
9
Kontrollera innehållet i den aktuella filen för att se om den innehåller söksträngen som lagras i $ sökord , och , om så är fallet , visar en länk till filen . Din foreach loop bör nu se ut så här :
foreach ( $ dirArray som $ thisFile ) {
$ thisPath = $ dir " /" $ thisFile ,
om . . ( " . " substr ( $ thisFile , 0,1 ) == ) fortsätter , " . " //Sök inte dolda filer , som börjar med
om ( filtyp ( $ thisPath ) == " dir " ) {
$ subdir [ ] = $ thisPath , //lägg till en array lista " " $ thisFile " < /a > \\ n "; . .
}
10
Lägg en rad i slutet av sökningen ( ) funktionen för att iterera igenom $ subdir array och söka alla underkataloger . Om du inte vill söka underkataloger , inte lägga denna linje
foreach ( $ subdir som $ thisDir ) sök ( $ sökord , $ thisDir ) .
11
Lägg en sista raden i PHP efter fullständig sökning ( ) funktionen för att se om formulärdata har skickats , och , om så är fallet , ring sökningen ( ) funktionen . Din kod bör se ut så här :
< ?
funktionen Sök ( $ sökord ) {
om ( func_num_args ( ) > 1 ) $ dir = func_get_arg ( 1 ) ;
annars $ dir = " . ";
$ dirStream = opendir ( $ dir );
while ( $ nextFile = readdir ( $ dirStream ) ) $ dirArray [ ] = $ nextFile ;
closedir ( $ dirStream ) .
foreach ( $ dirArray som $ thisFile ) {
$ thisPath = $ dir " /" $ thisFile ; .
om ( substr ( $ thisFile , 0,1 ) == " . " ) fortsätter ,
om ( filtyp ( $ thisPath ) == " dir " ) {
$ subdir [] = " < a som $ thisDir ) sök ( $ sökord , $ thisDir ) ,
}
if ( isset ( $ _GET [ ' key' ]) && $ _GET [ ' viktiga ' ] ! = " " ) sökning ( $ _GET [ ' nyckeln ' ] ) ; ?
> Addera