Mr * Techie

PHP

du kan nemt oprette din egen søgemaskine i PHP.

dette er et tekstfelt, hvor en bruger skriver et udtryk og trykker på knappen Send og derefter omdirigeres af søgemaskinen til den side, han leder efter. For eksempel kan en bruger indtaste sætningen ‘youtube’ og derefter omdirigeres til youtube-hjemmesiden.

denne type søgemaskine er ikke google. Det søger ikke gennem snesevis af sider og sender derefter de mest relevante resultater baseret på forespørgslen. Det er ikke så avanceret. Hvad det gør er, i henhold til den søgeforespørgsel, du indtaster, hvis der er en matchende if-erklæring for den forespørgsel, det omdirigerer en person til den side, der er mest relevant i henhold til den forespørgsel. Så det er ikke en søgemaskine, der returnerer mange relevante resultater, men en søgemaskine, der omdirigerer en bruger til en side. Det er en meget mere enklere søgemaskine, men stadig meget effektiv til grundlæggende formål og noget, du måske ønsker for din hjemmeside.

opbygning af denne type søgemaskine er faktisk slet ikke svært. Det er faktisk meget simpel kode.

for at gøre dette, lad os starte med HTML. Vi opretter et tekstfelt, som vist nedenfor:

de eneste udtryk, som denne søgemaskine indeholder indtil videre:
Dropboks
Google
ebay
youtube
Hess toy truck
LM7805

HTML-kode

HTML-koden til oprettelse af denne tekstboks ovenfor er:

nu hvor vi har oprettet et tekstfelt, og en bruger er i stand til at indtaste det udtryk, han eller hun søger efter, er vi nu nødt til at omdirigere brugeren til den nødvendige side baseret på den søgeforespørgsel, han/hun har indtastet. For eksempel, hvis brugeren indtaster søgeforespørgslen, ““, så er vi nødt til at omdirigere ham til hjemmeside. For at gøre dette bruger vi PHP. PHP udtrækker det søgeudtryk, som brugeren har indtastet, og bruger en række if-udsagn for at se, om dette udtryk matcher et udtryk, vi har på vores hjemmeside. Hvis det gør det, leder vi derefter brugeren til den nødvendige side på det søgeudtryk ved hjælp af PHP header-funktionen. Dette vil blive forklaret nedenfor. Hvis intet søgeudtryk matcher noget, vi har på vores hjemmeside, så omdirigerer vi brugeren til en side, der siger, “ingen søgninger matchede”.

eksempel

et eksempel på dette er en bruger, der kigger op på udtrykket ‘Hess toy trucks’. Vi er nødt til at oprette siden Hess toy trucks, så når brugeren går ind i udtrykket, har vi siden til at omdirigere dem til, og vi er nødt til at oprette en IF-erklæring på PHP-siden, searchpage.php for at kontrollere, hvilket udtryk der er valgt.

dette er hvad PHP-siden, søgeside.php, vil se ud:

dybest set, PHP side, searchside.php, henter søgeudtrykket, som brugeren indtaster ved hjælp af superglobal array, $_POST, og sammenligner det derefter med en række if-udsagn. Hvis det søgeudtryk, som brugeren indtastede, matcher et søgeudtryk, der er serien af IF-udsagn, omdirigeres brugeren til den side, som URL ‘ en angiver i headerfunktionen. Hvis ingen af søgeudtrykene stemmer overens, vises udsagnet, ingen matchede søgninger på skærmen.

et trick, som vi bruger til at forenkle denne proces, er, når vi henter det søgeudtryk, som brugeren indtastede, vi små bogstaver strengen ved hjælp af funktionen strtolavere (). Det er derfor, uanset hvilken streng brugeren indtaster, bliver det små bogstaver. Derfor, når vi sammenligner strenge, kan vi bare sammenligne det kun med strengen med små bogstaver alfabetiske tegn. Et eksempel er forskellige brugere, der skriver i” Hess Truck”,” HESS TRUCK”,” Hess truck “og”HESS truck”. Hvis vi ikke konverterede disse til små bogstaver, skulle vi have sammenligninger med hvert stort bogstav i hvert ord. Disse ville være kedelige. Ved at konvertere strengen til alle små bogstaver er alt, hvad vi skal gøre, at sammenligne strengen med dens alle små bogstaver. Derfor er alt, hvad vi skal gøre, at sammenligne det med linjen if ($results==”Hess truck”).

du kan sætte så mange udtryk som du vil i søgesiden.php og omdirigere brugere til den ønskede side ved hjælp af header-funktionen.

denne søgemaskine fungerer godt, men der er et problem. Det returnerer kun et resultat, hvis brugeren indtaster den nøjagtige sætning, du leder efter. For eksempel, hvis en bruger forsøger at finde oplysninger om lm7805 spændingsregulator og typer i ‘lm7805 spændingsregulator’ i stedet for bare ‘LM7805’, omdirigeres søgningen ikke til siden på lm7805 spændingsregulatorer. Dette fordii henhold til koden ser if-udsagnet efter den nøjagtige lig med sætningen (==). Således skal det være et perfekt match. Samme ting for en anden søgeforespørgsel. Hvis en bruger skriver i ‘ google homepage ‘og ikke’ google’, vil personen ikke blive bragt til Googles hjemmeside. Dette skyldes, at if-udsagnet igen ser efter en direkte lige (==). Så for at imødegå, hvis sætningen indeholder ordet google, såsom ‘google-startside’ eller ‘google-søgemaskine’, vil brugeren stadig blive omdirigeret til Googles startside, fordi hans/hendes søgning indeholder ordet ‘google’. Det samme, hvis brugeren skriver ‘lm7805 spændingsregulator’. Da søgeforespørgslen indeholder sætningen ‘LM7805’, genkender søgemaskinen dette og omdirigerer personen til siden lm7805 spændingsregulator.

så hvordan gøres det? Det er simpelt. I stedet for at PHP if-sætningen er en direkte lige ( = = ), som i, hvis ($results==”google”), som skal være direkte ens, ændrer vi udsagnet til, hvis (strpos($results, “google”) = = “true”)

hvad denne erklæring gør er, at den ser efter sætningen, ‘google’, i søgeforespørgslen. Hvis placeringen af denne sætning er til stede i strengen, er if-udsagnet sandt; hvis det er sandt, kan vi omdirigere dem til Googles startside. Dette skyldes, at så længe’ google ‘ er til stede i søgeforespørgslen, er if-sætningen sand. Og så nedenunder sætter vi overskriften placering omdirigeretfunktion.

så vi opretter en ny søgeside med navnet searchpage2.php og ændre if-udsagnene, som vist ovenfor, får vi denne fil, som er vist nedenfor.

nu har vi en søgemaskine, der ikke kræver en direkte karakter-for-karakter match. Hvis brugeren skriver i ‘youtube-hjemmeside’ eller ‘youtube-videoer’, omdirigeres han/hun stadig til youtube-hjemmesiden, fordi søgeforespørgslen indeholder ordet ‘youtube’.

og du kan fortsætte med at forfine denne søgemaskine. For eksempel, hvis en bruger skriver i ‘google maps’ i stedet for bare at omdirigere dem til google hompage, kan du oprette en anden hvis erklæringat hvis resultatet indeholder ‘google’ og ‘maps’ for at omdirigere brugeren til google maps i stedet for blot google-startsiden. Hvis du gør dette, hvor du bruger den samme rodsætning ‘google’, men for forskellige kategorier inden for google, er det bedst at bruge If else-udsagn i stedet for just if-udsagn. Men det er ikke absolut nødvendigt, hvis du bruger og udsagn. Denne hvis-sætning ville se sådan ud, hvis ((strpos ($results, “google”) = = “true”) & & (strpos($results, “maps”) = = “true”))

så nedenunder vil du sætte header location redirect-funktionen til, header (‘Location: https://maps.google.com/’);

og sådan kan du opbygge en søgemaskine, der kan blive mere og mere avanceret eller mere og mere intelligent. Du bliver ved med at gøre flere divisioner og hvis udsagn. Så hvis en bruger skriver i ‘google’ og ‘finance’ inden for samme søgning, kan du bringe dem til google finance-siden. Hvis en bruger skriver ‘google ‘ og’ billeder ‘i samme søgning, kan du bringe dem til siden’ google Billeder’. Og så videre og så videre.

et par punkter at gøre om dette oprettelse af searchpage.php side. Når du gør det, skal du sørge for, at der absolut ikke er plads før <?php tag. Hvis der er plads mellem PHP-tagget, kan det sende output til bro.sereren, og koden fungerer ikke. Før PHP kan udføre denne omdirigeringsfunktion, kan der ikke skrives nogen output til bro.sereren. Intet overhovedet kan gå før <?php tag, ikke engang hvidt rum. Ellers får du en fejl, der siger noget om effekten af advarsel: kan ikke ændre overskriftsoplysninger – overskrifter, der allerede er sendt af (output startet kl /hjem/indhold/…/ søgeside.php: 1).Dette betyder, at før PHP udførte omdirigeringen, blev output allerede skrevet til bro.sereren. Med PHP header placering omdirigere, dette er forbudt. Også af samme grund, når du gemmer søgningenside.php-fil, gem den i ANSI-kodning. Gem det ikke i unicode, unicode big endian eller UTF-8-kodning. Disse koder kan kryptere og tilføje tegn før PHP-kodenselv når der ikke er noget hvidt rum der. ANSI er den reneste kodning, der ikke tilføjer nogen tegn før <?php tag og dette vil give de bedste resultater. For at se en mere dybdegående artikel om denne PHP header funktion fejl, se PHP Header placering fejl-advarsel: Kan Ikke Ændre Overskriftsoplysninger – Overskrifter, Der Allerede Er Sendt.

Sådan opretter du en søgemaskine i PHP.

relaterede ressourcer

Sådan oprettes din egen søgemaskine til din hjemmeside ved hjælp af PHP
Sådan oprettes en brugerdefineret søgemaskine til din hjemmeside ved hjælp af PHP
Sådan oprettes en Billedsøgemaskine til din hjemmeside ved hjælp af PHP
Sådan oprettes en videosøgemaskine til din hjemmeside ved hjælp af PHP
Sådan oprettes en Lydfilsøgemaskine til din hjemmeside ved hjælp af PHP
Sådan uploades billeder til en hjemmeside ved hjælp af PHP
Sådan uploades filer til en hjemmeside ved hjælp af PHP
Sådan oprettes din egen filoverførselsprotokol (FTP) til din hjemmeside ved hjælp af PHP
Sådan oprettes en bekræftelse
Sådan oprettes en søgbar Database ved hjælp af PHP
Sådan søger du en HTML-tabel efter ethvert ord eller en sætning ved hjælp af PHP
Sådan oprettes en Register-og Login-side ved hjælp af PHP

Leave a Reply

Din e-mailadresse vil ikke blive publiceret.