Hvordan lage et domene søkemotor med PHP

Hvordan lage et domene søkemotor med PHP


PHP er et kraftig skriptspråk som er oftest brukt av webutviklere å lage dynamiske websider og webapplikasjoner. Utvalget av funksjonalitet som PHP gir en programmerer er nesten uendelige, å kunne skape data å sende til en bruker, samt manipulere filer og database oppføringer på baksiden slutten. På grunn av dette, er PHP et utmerket valg av språk hvis du trenger for å bygge en søkemotor for ditt nettsted.

Bruksanvisning

1 Lag søkemotorens webskjema. I dette eksempelet, vil filen av PHP-script bli kalt "search.php." Skjemaet må en skriving boks og en "Send" -knappen.

<Form action = search.php method = get>

<Input name = tasten> <input type = levere verdi = Søk>

</ Form>

2 Lag en funksjon for å søke serverens filer og kataloger. Å gjøre en funksjon vil tillate enkle søk i underkataloger. Funksjonen vil ha en nødvendig parameter, som vil være i søkestrengen.

<?

funksjon søk ($ søkeord) {

}

?>

3 Legg til en valgfri parameter for underkatalog baner. Hvis denne andre parameteren ikke er spesifisert, vil funksjonen som standard søker gjeldende katalog.

funksjon søk ($ søkeord) {

if(func_num_args()>1) $dir = func_get_arg(1);

"." Andre $ dir =;

}

4 Les innholdet i katalogen til en matrise. Legg denne koden til søke () -funksjonen.

$ DirStream = opendir ($ dir);

while ($ nextFile = readdir ($ dirStream)) $ dirArray [] = $ nextfile;

closedir ($ dirStream);

5 Gjenta for innholdet i katalogen array ved hjelp av en foreach loop.

foreach ($ dirArray som $ thisFile) {

}

6 Lag en variabel til å lagre den relative banen fra PHP script til filen som søkte. Legg til dette innenfor foreach loop.

$ ThisPath = $ dir "/" $ thisFile..;

7 Legg til en linje for å hindre søkemotoren fra viser resultater fra skjulte filer (for eksempel ".htaccess").

if (substr ($ thisFile, 0,1) == ".") fortsetter;

8 Sjekk for å se om den nåværende filnavn i $ dirArray er faktisk en underkatalog, i så fall det vil bli lagret i en matrise for å søke gjennom senere.

if (filetype ($ thisPath) == "dir") {

$ Subdir [] = $ thisFile;

fortsette;

}

9 Sjekk innholdet i gjeldende fil for å se om den inneholder søkestrengen lagret i $ søkeord, og i så fall vise en lenke til filen. Din foreach løkke skal nå se slik ut:

foreach ($ dirArray som $ thisFile) {

$ ThisPath = $ dir "/" $ thisFile..;

if (substr ($ thisFile, 0,1) == ".") fortsetter; // Ikke søke skjulte filer, som begynner med "."

if (filetype ($ thisPath) == "dir") {

$ Subdir [] = $ thisPath; // Legger til en rekke notering underkataloger

fortsette;

}

if (strpos (file_get_contents ($ thisPath), $ søkeord)! == false)

echo "<a href=\"".str_replace("./","",$thisPath)."\">" $ thisFile "</a> \ n"..;

}

10 Legg til en linje på slutten av søket () -funksjonen til å iterere gjennom $ subdir matrise og søke i alle underkataloger. Hvis du ikke ønsker å søke underkataloger, ikke legg til denne linjen.

foreach ($ subdir som $ thisDir) søk ($ søkeord, $ thisDir);

11 Legg en siste linjen i PHP etter fullstendig søk () -funksjonen for å se om skjemadata foreligger, og i så fall, ring søke () -funksjonen. Din komplette koden skal se slik ut:

<Form action = search.php method = get>

<Input name = tasten> <input type = levere verdi = Søk>

</ Form>

<?

funksjon søk ($ søkeord) {

IF (func_num_args ()> 1) $ dir = func_get_arg (1);

"." Andre $ dir =;

$ DirStream = opendir ($ dir);

while ($ nextFile = readdir ($ dirStream)) $ dirArray [] = $ nextFile;

closedir ($ dirStream);

foreach ($ dirArray som $ thisFile) {

$ ThisPath = $ dir "/" $ thisFile..;

if (substr ($ thisFile, 0,1) == ".") fortsetter;

if (filetype ($ thisPath) == "dir") {

$ Subdir [] = $ thisPath;

fortsette;

}

if (strpos (file_get_contents ($ thisPath), $ søkeord)! == false)

echo "<a href=\"".str_replace("./","",$thisPath)."\">" $ thisFile "</a> \ n"..;

}

foreach ($ subdir som $ thisDir) søk ($ søkeord, $ thisDir);

}

if (isset ($ _ GET [ 'key']) && $ _GET = [ 'key'] ""!) søk ($ _ GET [ 'nøkkel']);

?>

Hint

  • Du kan enkelt legge til flere funksjoner til søkemotoren, slik som betingede søk og rangert resultatene, ved å gjøre mindre endringer i søke () -funksjonen eller kalle det flere ganger.
  • Eksempelet er litt mer enn en naken PHP script. Sørg for å legge alle nødvendige HTML-koder (for eksempel "<DOCTYPE>" og "<body>") for å gjøre dine script standard kompatibel.