Mr * Techie

PHP

du kan enkelt skapa din egen sökmotor i PHP.

detta är en textruta där en användare skriver in en term och trycker på Skicka-knappen och sedan omdirigeras av sökmotorn till den sida han letar efter. Till exempel kan en användare skriva in frasen ’youtube’ och sedan omdirigeras till YouTubes hemsida.

denna typ av sökmotor är inte google. Det söker inte igenom dussintals webbplatser och skickar sedan de mest relevanta resultaten baserat på frågan. Det är inte så avancerat. Vad det gör är, enligt sökfrågan som du anger, om det finns ett matchande if-uttalande för den frågan, kommer det att omdirigera en person till den sida som är mest relevant enligt den frågan. Så det är inte en sökmotor som returnerar många relevanta resultat, men en sökmotor som omdirigerar en användare till en sida. Det är en mycket enklare sökmotor, men fortfarande mycket effektiv för grundläggande ändamål och något du kanske önskar för din webbplats.

att bygga denna typ av sökmotor är faktiskt inte svårt alls. Det är faktiskt väldigt enkel kod.

för att göra detta, låt oss börja med HTML. Vi skapar en textruta, som visas nedan:

de enda termer som denna sökmotor innehåller hittills:
Dropbox
Amazon
google
ebay
wikipedia
youtube
Hess toy truck
LM7805

HTML-kod

HTML-koden för att skapa den här textrutan ovan är:

nu när vi har skapat en textruta och en användare kan skriva in termen han eller hon söker efter, måste vi nu omdirigera användaren till den nödvändiga sidan baserat på sökfrågan han/hon har angett. Till exempel, om användaren går in i sökfrågan, ”wikipedia”, måste vi omdirigera honom till wikipedia-webbplatsen. För att göra detta använder vi PHP. PHP extraherar söktermen som användaren har angett och använder en serie if-uttalanden för att se om den termen matchar en term som vi har på vår webbplats. Om det gör det, leder vi sedan användaren till den nödvändiga sidan på den söktermen med hjälp av PHP-header-funktionen. Detta kommer att förklaras nedan. Om ingen sökterm matchar någon som vi har på vår hemsida, då vi omdirigera användaren till en sida som säger, ”inga sökningar matchas”.

exempel

ett exempel på detta är en användare som letar upp termen ’Hess toy trucks’. Vi måste skapa sidan Hess toy trucks så att när användaren går in i termen har vi sidan att omdirigera dem till, och vi måste skapa ett if-uttalande på PHP-sidan, söksida.php för att kontrollera vilken term som är vald.

detta är vad PHP sida, searchpage.php, kommer att se ut:

i grund och botten PHP-sidan, söksida.php, hämtar söktermen som användaren anger med hjälp av superglobal array, $_POST, och jämför sedan den mot en serie if-uttalanden. Om söktermen som användaren angav matchar en sökterm som är serien av if-satser, omdirigeras användaren till den sida som webbadressen anger i rubrikfunktionen. Om inget av söktermerna matchar kommer uttalandet, inga sökningar matchade att matas ut till skärmen.

ett trick som vi använder för att förenkla denna process är när vi hämtar söktermen användaren angav, vi små bokstäver strängen med strtolower () – funktionen. Detta varför oavsett vilken sträng användaren går in, blir det små bokstäver. Därför, när vi jämför strängar, kan vi bara jämföra det bara med strängen med små bokstäver. Ett exempel är att olika användare skriver in ”Hess Truck”, ”HESS TRUCK”, ”Hess truck”och” HESS truck”. Om vi inte konverterade dessa till små bokstäver måste vi ha jämförelser med varje stor bokstav i varje ord. Dessa skulle vara tråkiga. Genom att konvertera strängen till alla små bokstäver är allt vi behöver göra att jämföra strängen med dess alla små bokstäver. Därför är allt vi behöver göra att jämföra det med linjen if ($result==”hess truck”).

du kan sätta så många termer som du vill i söksidan.php och omdirigera användare till önskad sida med header-funktionen.

den här sökmotorn fungerar bra, men det finns ett problem. Det returnerar bara ett resultat om användaren anger den exakta frasen du letar efter. Till exempel, om en användare försöker hitta information om lm7805 spänningsregulator och typer i ’lm7805 spänningsregulator’ istället för bara ’LM7805’, kommer sökningen inte att omdirigeras till sidan på lm7805 spänningsregulatorer. Detta beror på attenligt koden söker if-uttalandet efter exakt lika med frasen (==). Således måste det vara en perfekt match. Samma sak för en annan sökfråga. Om en användare skriver in ’ Googles startsida ’och inte’ google ’ kommer personen inte till Googles webbplats. Detta beror på att if-uttalandet igen letar efter en direkt lika (==). Så för att motverka, om frasen innehåller ordet google, till exempel ’Googles startsida’ eller ’Googles sökmotor’, kommer användaren fortfarande att omdirigeras till Googles startsida, eftersom hans/hennes sökning innehåller ordet ’google’. Samma sak om användaren typesin ’lm7805 spänningsregulator’. Eftersom sökfrågan innehåller frasen ’LM7805’, sökmotorn känner igen detta och omdirigerar personen till lm7805 spänningsregulator sida.

så hur görs detta? Det är enkelt. Istället för att php if-uttalandet är en direkt lika ( = = ), som i, if ($result==”google”), som måste vara direkt lika, ändrar vi uttalandet till, if (strpos($result, ”google”) = = ”true”)

vad detta uttalande gör är att det Letar efter frasen ”google” i sökfrågan. Om positionen för den frasen finns i strängen är if-uttalandet sant; om det är sant kan vi omdirigera dem till Googles hemsida. Detta beror på att så länge ’google’ finns i sökfrågan är if-uttalandet sant. Och sedan under lägger vi rubriken plats omdirigeringfunktion.

så vi skapar en ny söksida med namnet searchpage2.php och ändra if-uttalandena, som visas ovan, får vi den här filen, som visas nedan.

nu har vi en sökmotor som inte kräver en direkt tecken-för-tecken-matchning. Om användaren skriver in ’youtube-hemsida’ eller ’youtube-videor’ kommer han/hon fortfarande att omdirigeras till youtube-hemsidan, eftersom sökfrågan innehåller ordet ’youtube’.

och du kan fortsätta förfina denna sökmotor. Till exempel, om en användare skriver i ’google maps’ istället för att bara omdirigera dem till google hompage, du kan skapa en annan om statement that om resultatet innehåller ’google’ och ’maps’ för att omdirigera användaren till google maps i stället för att helt enkelt Googles startsida. Om du gör det där du använder samma rotfras ’google’ men för olika kategorier inom google, är det bäst att använda if else-uttalanden istället för bara if-uttalanden. Men det är inte absolut nödvändigt om du använder och uttalanden. Detta om uttalande skulle se ut så här, om ((strpos ($resultat, ”google”) = = ”true”) && (strpos($resultat, ”maps”) = = ”true”))

sedan under du skulle sätta header plats omdirigering funktion till, header (’plats: https://maps.google.com/’);

och så kan du bygga en sökmotor som kan bli mer och mer avancerad, eller mer och mer intelligent. Du fortsätter att göra fler divisioner och om uttalanden. Så om en användare skriver in ’google ’ och’ finance ’ inom samma sökning kan du ta dem till google finance-sidan. Om en användare skriver in ’google’ och ’bilder’ i samma sökning kan du ta med dem till sidan ’google bilder’. Och så vidare och så vidare.

några punkter att göra om detta skapar söksidan.php-sida. När du gör det, se till att det inte finns något utrymme före <?php-tagg. Att placera utrymme mellan PHP-taggen kan skicka utdata till webbläsaren och koden fungerar inte. Innan PHP kan utföra denna omdirigeringsfunktion kan Ingen utmatning skrivas till webbläsaren. Nej ingenting alls kan gå före <?php-tagg, inte ens vitt utrymme. Annars får du ett fel som säger något om effekten av varning: kan inte ändra rubrikinformation – rubriker som redan skickats av (utdata startade på /home/content/…/ söksida.php: 1).Det betyder att innan PHP utförde omdirigeringen var utmatningen redan skriven till webbläsaren. Med PHP header plats omdirigering, detta är förbjudet. Också av samma anledning, när du sparar sökningensida.php-fil, spara den i ANSI-kodning. Spara inte det i Unicode, unicode big endian eller UTF-8-kodning. Dessa kodningar kan kryptera och lägga till tecken före PHP-kodenäven när det inte finns något vitt utrymme där. ANSI är den renaste kodningen som inte lägger till några tecken före <?php-tagg och detta kommer att ge de bästa resultaten. För att se en mer djupgående artikel om detta PHP-header-funktionsfel, se PHP-Header Location Error-Warning: Det Går Inte Att Ändra Rubrikinformation – Rubriker Som Redan Skickats.

så här skapar du en sökmotor i PHP.

relaterade resurser

så här skapar du din egen sökmotor för din webbplats med PHP
så här skapar du en anpassad sökmotor för din webbplats med PHP
så här skapar du en bildsökmotor för din webbplats med PHP
så här skapar du en videosökmotor för din webbplats med PHP
så här skapar du en Ljudfilsökmotor för din webbplats med PHP
så här laddar du upp bilder till en webbplats med PHP
så här laddar du upp filer till en webbplats med PHP
så här skapar du ditt eget filöverföringsprotokoll (FTP) för din webbplats med PHP
så här skapar du en bekräftelse Sida för en HTML-webbformulär med PHP
så här sätter du in bilder i en MySQL-databas med PHP
så här skapar du en sökbar databas med MySQL och PHP
så här söker du en MySQL-tabell för alla ord eller fraser med PHP
så här skapar du en Register – och inloggningssida med PHP

Leave a Reply

Din e-postadress kommer inte publiceras.