Mr•Techie használatával
könnyedén létrehozhat saját keresőmotort a PHP-ben.
ez egy szövegdoboz, ahol a felhasználó beír egy kifejezést, megnyomja a küldés gombot, majd a keresőmotor átirányítja a keresett oldalra. Például a felhasználó beírhatja a ‘youtube’ kifejezést, majd átirányíthatja a youtube kezdőlapjára.
ez a típusú keresőmotor nem a google. Nem keres több tucat webhelyen, majd elküldi a lekérdezés alapján a legrelevánsabb eredményeket. Nem olyan fejlett. Ez azt jelenti, hogy a megadott keresési lekérdezés szerint, ha van egy megfelelő IF utasítás az adott lekérdezéshez, átirányítja az embert a lekérdezés szerint a legrelevánsabb oldalra. Tehát nem egy keresőmotor ad vissza sok releváns eredményt, hanem egy keresőmotor, amely átirányítja a felhasználót egy oldalra. Ez egy sokkal egyszerűbb keresőmotor, de még mindig nagyon hatékony az alapvető célokra, és valami, amit a webhelyére vágyhat.
az ilyen típusú keresőmotorok építése valójában egyáltalán nem nehéz. Valójában nagyon egyszerű kód.
ehhez kezdjük a HTML-vel. Létrehozunk egy szövegdobozt, amint az alább látható:
az egyetlen kifejezés ez a keresőmotor tartalmaz eddig:
Dropbox
Amazon
google
ebay
wikipedia
youtube
Hess toy truck
LM7805
HTML kód
a HTML kódot létrehozni ezt a szövegmezőt a fenti:
most, hogy létrehoztunk egy szövegdobozt, és a felhasználó be tudja írni a keresett kifejezést, most át kell irányítanunk a felhasználót a szükséges oldalra a megadott keresési lekérdezés alapján. Például, ha a felhasználó beírja a “wikipedia” keresési lekérdezést, akkor át kell irányítanunk a wikipedia weboldalára. Ehhez PHP-t használunk. A PHP kibontja a felhasználó által megadott keresési kifejezést, és egy sor if utasítást használ, hogy megnézze, hogy ez a kifejezés megegyezik-e a weboldalunkon található kifejezéssel. Ha igen, akkor a PHP header függvény segítségével a felhasználót a keresési kifejezés szükséges oldalára irányítjuk. Ezt az alábbiakban ismertetjük. Ha egyetlen keresési kifejezés sem felel meg a weboldalunkon találhatóknak, akkor átirányítjuk a felhasználót egy olyan oldalra, amely kijelenti, “nincs találat”.
példa
erre példa egy felhasználó, aki a ‘Hess toy trucks’kifejezést keresi. Létre kell hoznunk a Hess toy trucks oldalt, hogy amikor a felhasználó beírja a kifejezést, akkor legyen az oldal, amelyre átirányíthatjuk őket, és létre kell hoznunk egy if utasítást a PHP oldalon, a searchpage oldalon.php, hogy ellenőrizze, melyik kifejezés van kiválasztva.
ez az, amit a PHP oldal, searchpage.php, így fog kinézni:
alapvetően a PHP oldal, searchpage.php, letölti a keresési kifejezést, amelyet a felhasználó a superglobal tömb, $_POST használatával ad meg, majd összehasonlítja az if utasítások sorozatával. Ha a felhasználó által megadott keresési kifejezés megegyezik egy olyan keresési kifejezéssel, amely az IF utasítások sorozata, a felhasználó átirányításra kerül arra az oldalra, amelyet az URL megad a fejléc függvényben. Ha a keresési kifejezések egyike sem egyezik, az utasítás, nincs egyező keresés jelenik meg a képernyőn.
az egyik trükk, amelyet a folyamat egyszerűsítésére használunk, amikor a felhasználó által megadott keresési kifejezést lekérjük, a strtolower() függvény segítségével kisbetűvel írjuk be a karakterláncot. Ezért nem számít, milyen karakterláncot ír be a felhasználó, kisbetűvé válik. Ezért, amikor összehasonlítjuk a karakterláncokat, csak a kisbetűs betűkkel rendelkező karakterlánccal hasonlíthatjuk össze. Egy példa a különböző felhasználók gépelés “Hess Truck”,” HESS TRUCK”,” Hess truck”,”HESS truck”. Ha nem konvertálnánk ezeket kisbetűkre, összehasonlításokat kellene végeznünk az egyes szavak minden betűjének nagybetűivel. Ezek unalmasak lennének. Ha a karakterláncot minden kisbetűre konvertáljuk, csak annyit kell tennünk, hogy összehasonlítjuk a karakterláncot az összes kisbetűs ekvivalensével. Ezért csak annyit kell tennünk, hogy összehasonlítjuk az IF sorral ($eredmény==”hess truck”).
annyi kifejezést helyezhet el a keresőoldalon, amennyit csak akar.php és átirányítja a felhasználókat a kívánt oldalra a fejléc funkció segítségével.
ez a keresőmotor remekül működik, de van egy probléma. Csak akkor ad eredményt, ha a felhasználó pontosan beírja a keresett kifejezést. Például, ha egy felhasználó megpróbál információt találni az LM7805 feszültségszabályozóról, és az ‘LM7805 feszültségszabályozóval’ írja be az ‘lm7805’ helyett, a keresés nem fog átirányítani az LM7805 feszültségszabályozók oldalára. Ez azért van, merta kód szerint az if utasítás a kifejezés pontos egyenlőségét keresi (==). Így, tökéletesen illeszkednie kell. Ugyanez a helyzet egy másik keresési lekérdezéssel. Ha a felhasználó a ‘google homepage’ – t írja be, és nem a ‘google’ – t’, akkor a személy nem kerül a google webhelyére. Ez azért van, mert az IF utasítás ismét közvetlen egyenlőt keres (==). Tehát, ha a kifejezés tartalmazza a google szót, például a ‘google homepage’ vagy a ‘google search engine’, akkor a felhasználó továbbra is átirányításra kerül a google kezdőlapjára, mert a keresésében szerepel a ‘google’szó. Ugyanaz, ha a felhasználó beírjain ‘lm7805 feszültségszabályozó’. Mivel a keresési lekérdezés tartalmazza az ‘LM7805’ kifejezést, a keresőmotor felismeri ezt, és átirányítja a személyt az LM7805 feszültségszabályozó oldalra.
tehát hogyan történik ez? Egyszerű. Ahelyett, hogy a php if utasítás közvetlen egyenlő lenne (==), mint például az if ($result==”google”), amelynek közvetlenül egyenlőnek kell lennie, megváltoztatjuk az állítást, ha (strpos($result, “google”) == “true”)
ez az állítás a “google” kifejezést keresi a keresési lekérdezésben. Ha a kifejezés helyzete szerepel a karakterláncban, akkor az IF utasítás igaz; ha igaz, átirányíthatjuk őket a google kezdőlapjára. Ez azért van, mert amíg a ‘google’ jelen van a keresési lekérdezésben, az if állítás igaz. Aztán alatta helyezzük a fejléc helyét átirányításfunkció.
így létrehozunk egy új searchpage nevű searchpage2.php és módosítsa az if utasításokat, ahogy fent látható, megkapjuk ezt a fájlt, amely az alábbiakban látható.
most van egy keresőmotorunk, amely nem igényel közvetlen karakter-karakter egyezést. Ha a felhasználó beírja a ‘youtube honlap’ vagy a ‘youtube videók’ szót, akkor is átirányításra kerül a youtube kezdőlapjára, mert a keresési lekérdezés tartalmazza a ‘youtube’szót.
és tovább finomíthatja ezt a keresőmotort. Például, ha egy felhasználó beírja a ‘google maps’ – et ahelyett, hogy csak átirányítaná őket a google hompage-re, létrehozhat egy másik if nyilatkozatot, hogy ha az eredmény ‘google’ – t és ‘maps’ – et tartalmaz, akkor átirányítja a felhasználót a google Maps-re, nem pedig egyszerűen a google kezdőlapjára. Ha ezt ott teszi, ahol ugyanazt a ‘google’ gyökér kifejezést használja, de a google különböző kategóriáihoz, akkor a legjobb, ha az If else utasításokat használja a just if utasítások helyett. De ez nem feltétlenül szükséges, ha használ és nyilatkozatokat. Ez az IF utasítás így nézne ki, ha ((strpos ($result, “google”) == “true”) && (strpos ($result, “maps”) == “true”))
akkor alatta a fejléc helyét átirányítja, header (‘Location: https://maps.google.com/’);
és így lehet olyan keresőmotort építeni, amely egyre fejlettebbé vagy intelligensebbé válhat. Még több megosztást és ha kijelentést tesz. Tehát, ha egy felhasználó beírja a ‘google’ és a ‘finance’ szót ugyanazon a keresésen belül, akkor a google finance oldalra hozhatja őket. Ha egy felhasználó beírja a ‘google’ és a ‘képek’ szót ugyanabban a keresésben, akkor azokat a ‘google Képek’ oldalra hozhatja. És így tovább és így tovább.
néhány megjegyzés a searchpage létrehozásáról.php oldal. Amikor ezt megteszi, győződjön meg róla, hogy nincs hely a <előtt?php tag. Ha szóközt helyezünk a PHP címke közé, előfordulhat, hogy kimenetet küldünk a böngészőnek, és a kód nem fog működni. Mielőtt a PHP végrehajtaná ezt az átirányítási funkciót, nem lehet kimenetet írni a böngészőbe. Semmi sem mehet az <előtt?php tag, még fehér szóköz sem. Ellenkező esetben, akkor kap egy hibát, hogy mond valamit a hatása, figyelmeztetés: nem lehet módosítani fejléc információ-fejlécek már küldött (kimenet kezdődött / home / content/…/ searchpage.php:1).Ez azt jelenti, hogy mielőtt a PHP végrehajtotta az átirányítást, a kimenetet már a böngészőbe írták. A PHP fejléc hely átirányítása esetén ez tilos. Ugyanezen okból a keresés mentésekoroldalt.php fájl, mentse el ANSI kódolásban. Ne mentse unicode, unicode big endian vagy UTF-8 kódolásban. Ezek a kódolások titkosíthatják és hozzáadhatják a karaktereket a PHP kód előtt, még akkor is, ha nincs fehér szóköz. Az ANSI a legtisztább kódolás, amely nem ad hozzá karaktereket a <előtt?php tag, és ez adja a legjobb eredményt. Ha részletesebb cikket szeretne látni erről a PHP fejléc funkció hibáról, lásd: PHP fejléc helye hiba-figyelmeztetés: A Fejlécinformációk Nem Módosíthatók – A Már Elküldött Fejlécek.
így hozhat létre keresőmotort PHP-ben.
kapcsolódó források
Hogyan hozzunk létre saját keresőmotort az Ön webhelyéhez a PHP használatával
Hogyan hozzunk létre egyedi keresőmotort az Ön webhelyéhez a PHP használatával
Hogyan hozzunk létre Képkeresőt az Ön webhelyéhez a PHP használatával
Hogyan hozzunk létre videó keresőmotort az Ön webhelyéhez a PHP használatával
Hogyan hozzunk létre hangfájl-keresőmotort az Ön webhelyéhez a PHP használatával
Hogyan töltsünk fel képeket egy webhelyre a PHP használatával
hogyan lehet fájlokat feltölteni egy webhelyre a PHP használatával
hogyan lehet saját fájlátviteli protokollt (FTP) létrehozni a webhelyéhez a PHP használatával
hogyan lehet megerősítést létrehozni Oldal HTML webes űrlaphoz PHP használatával
Képek beszúrása MySQL adatbázisba PHP használatával
Hogyan hozzunk létre kereshető adatbázist MySQL és PHP használatával
Hogyan keressünk egy MySQL táblában bármilyen szót vagy kifejezést PHP használatával
Hogyan hozzunk létre regisztrációs és bejelentkezési oldalt PHP használatával