Oldal: 1 / 2 12 UtolsóUtolsó
Eredmény: 1 - 10 (11) összesen

Téma: Szöveg, vagy szöveg részlet keresése saját belső oldalainkon

  1. #1
    Tag
    Csatlakozott
    08-10-08
    Hozzászólás
    91
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás Szöveg, vagy szöveg részlet keresése saját belső oldalainkon

    Sziasztok!

    A következő napokat arra fogom szentelni hogy létrehozzak egy viszonylag jó kereséső osztályt php alatt.

    A témát azért nyitottam, hogy leírjam az elvet ami alapján szeretném megvalósítani. Most fogok először belemélyedni egy komolyabb keresőprogram fejlesztésébe, szóval biztos hagy majd kívánni valót maga után az elv, de kíváncsi lennék mit szólnak hozzá az itteni fejlesztő guruk.

    Tehát az elv a következő:

    Lenne egy saját robotom, ami bizonyos időközönként automatikusan végigpásztázza az összes létező belső oldalamat és az URL-jüket elmentené adatbázisba. Egészen addig csinálná amíg az összes oldal nem szerepel, ha már szerepel akkor ugrik a következő oldalra.
    Ezt úgy képzeltem el, hogy kiindulási pontnak megadom az gyökér index.php-ját, fájlkezelő php függvények segítségével előkészítem olvasásra és egy tömbbe elhelyezem az összes <a> html tag href attribútumának értékét. Majd véletlenszerűen kiválaszt egy elérési útvonalat és azon halad tovább. Az URL-t mindig elmenti adatbázisba.

    Mivel van egy felső navigációs menüm, amely minden oldalon megjelenik ezért sosem tud zsákutcába kerülni, ahonnan nem vezet tovább link. Ezt egészen addig csinálja amíg az összes oldal nem szerepel az adatbázisban, de mindenesetre lenne egy maximum próbálkozási limit, hogy egy idő után amikor már feltételezhetően bejárta az összes oldalt, leálljon.

    Maga a kereső osztály az adatbázisban eltárolt URL-ekből fog táplálkozni és ha valaki rákeres egy kulcsszóra, vagy többre akkor a egy tagfüggvény végigjárná megint csak ezeket az URL-eket amik az adatbázisban vannak és megnézné mely oldalakon található meg a kifejezés, és ahol egyezés van azt eltárolja megjelenítésre, majd ha végignézte egy listában kidobom az url-eket ahol volt egyezés.

    Szerintem logikusnak és használhatónak tűnik, de pár dologban nem vagyok biztos amik elengedhetetlenek ehhez. Az egyik az az hogy nem tudom így látatlanba elképzelni hogy ezek a programok mennyire terhelnék meg a rendszert és nem válna-e használhatatlanná miattuk.
    A másik ami jobban foglalkoztat, nem vagyok biztos benne (de majd kipróbálom ha addig nem válaszol senki ) hogy fopen() függvénnyel, meg tudok e nyitni úgy egy fájlt, ha a link ami rámutat, nem konkrétan a *.php-ra hivatkozik, hanem paraméterezett formában van (pl. index.php?open=cikkek&cikkid=001)

    Nos mit gondoltok?...



  2. #2
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.605
    Begyűjtött 1.332 köszönetet
    828 hozzászólásával

    Alapbeállítás re: Szöveg, vagy szöveg részlet keresése saját belső oldalainkon

    Idézet Killroy eredeti hozzászólása Hozzászólás megtekintése
    Sziasztok!


    Nos mit gondoltok?...
    nekem van egy sitemmap generatorom ami az elso reszet csinalja annak amit akarsz, egy apro kulonbseggel. mivel altalaban a weboldalakon van egy fiz menu ami minden oldalon megtalalhato ezert nalam ha egy url benne mar megvolt akkor az bekerul a kivetelek koze es e kovetkezo oldalon azt mar figyelmen kivul hagyja(tehat nem megy rajta tovabb ujra). igy a script mindenhogyan veget er egyszer, nincs vegtelen ciklus. szoval en igy csinalnam a helyedben.
    a masik dolog az fopen(). szerintem felejtsd el. a file_get_contents() vagy a curl segitsegevel sokkal jobb eredmeny erheto el.

    egyebkent ha nem statikus az oldalad akkor egyszerubb az adatbazisban keresni a szovegben. ha statikus akkor is egyszerubb nem csak az url-eket menteni a db-be hanem a teljes text-tartalmat az oldalnak es a keresesnel csak egy db query kell, nem kell minden fajlt megnyitni egyesevel(ami el terhelo).


    If debugging is the process of removing software bugs, then programming must be the process of putting them in.
    Github Rake tutorial
    Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime.
    Respect all, fear none

  3. #3
    Tag
    Csatlakozott
    08-10-08
    Hozzászólás
    91
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Szöveg, vagy szöveg részlet keresése saját belső oldalainkon

    Idézet Geri07 eredeti hozzászólása Hozzászólás megtekintése
    nekem van egy sitemmap generatorom ami az elso reszet csinalja annak amit akarsz, egy apro kulonbseggel. mivel altalaban a weboldalakon van egy fiz menu ami minden oldalon megtalalhato ezert nalam ha egy url benne mar megvolt akkor az bekerul a kivetelek koze es e kovetkezo oldalon azt mar figyelmen kivul hagyja(tehat nem megy rajta tovabb ujra). igy a script mindenhogyan veget er egyszer, nincs vegtelen ciklus.
    Igen, ez jó ötlet, és talán még az én tudásomat se haladja meg a kivitelezés. Köszi a tippet a file_get_contents() kapcsán. Az oldalam nem statikus, hanem az index.php-n kívül minden oldal paraméterezve érhető el a $_get[] tartalmának a vizsgálatával. Ezek szerint a file_get_contents() vagy a fopen() képes megnyitni úgy fájlokat, hogy ilyen paraméretezett az url és nem konkrétan a file-ra mutat? végülis muszáj neki mert feltételezem hogy a Google vagy az összes többi kereső is így csinálja.

    Egyébként ha ez így működik akkor persze, akár a teljes szöveges tartalmat elmenthetem adatbázisba.



  4. #4
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.605
    Begyűjtött 1.332 köszönetet
    828 hozzászólásával

    Alapbeállítás re: Szöveg, vagy szöveg részlet keresése saját belső oldalainkon

    megnyitja a parameterezett fajlokat is. de ha dinamikus az oldalad tartalma akkor gondolom adatbazisbol kapjak a tartalmat. ha igy van akkor egyszerubb egy sima adatbazis keresessel megnezni a tartalmat.



  5. #5
    Tag
    Csatlakozott
    08-10-08
    Hozzászólás
    91
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Szöveg, vagy szöveg részlet keresése saját belső oldalainkon

    "weboldalakon van egy fiz menu ami minden oldalon megtalalhato ezert nalam ha egy url benne mar megvolt akkor az bekerul a kivetelek koze es e kovetkezo oldalon azt mar figyelmen kivul hagyja"

    De így könnyen zsákutcába kerülhet a program. Vagy ha megnyit egy oldalt, és azon az összes URL már a kivételek között van akkor visszadobod a kiindulási pontra? vagy az előző oldalra, hogy onnan folytassa más irányba a pásztázást?



  6. #6
    Tag
    Csatlakozott
    08-10-08
    Hozzászólás
    91
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Szöveg, vagy szöveg részlet keresése saját belső oldalainkon

    Idézet Geri07 eredeti hozzászólása Hozzászólás megtekintése
    megnyitja a parameterezett fajlokat is. de ha dinamikus az oldalad tartalma akkor gondolom adatbazisbol kapjak a tartalmat. ha igy van akkor egyszerubb egy sima adatbazis keresessel megnezni a tartalmat.
    Igazad van, de lelkes PHP amatőr vagyok, és szeretném megvalósítani azt is ha fájlban kell keresnie. Ezzel csak az a baj, hogy ha esetleg eltárolom ugye az egyes oldalak tartalmait és ugyanezen szövegek már amúgy is szerepelnek az adatbázisban akkor kétszer tárolom el ugyanazt.

    Azonban ha csak az adatbázisban keresek, akkor el kell gondolkodnom azon, hogy az egyes adatbázis tartalmakhoz URL-eket társítsak ahol ugye megjelennek a nagyközönségnek.



  7. #7
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.605
    Begyűjtött 1.332 köszönetet
    828 hozzászólásával

    Alapbeállítás re: Szöveg, vagy szöveg részlet keresése saját belső oldalainkon

    nem kell ketszer eltarolnd. a tablaban csinalsz egy id, url,meg content oszlopot es az url alapjan mindig ellenorzod hogy van e mar ilyen rekord az adatbazisban. ha van akkor csak felulirod a szoveget, ha nincs akkor letrehozol egy uj bejegyzest.

    a masodik dolog: nem tudom milyen oldalrol beszelunk. forum,blog ,hirdetesi oldal....stb



  8. #8
    Tag
    Csatlakozott
    08-10-08
    Hozzászólás
    91
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Szöveg, vagy szöveg részlet keresése saját belső oldalainkon

    Idézet Geri07 eredeti hozzászólása Hozzászólás megtekintése
    nem kell ketszer eltarolnd. a tablaban csinalsz egy id, url,meg content oszlopot es az url alapjan mindig ellenorzod hogy van e mar ilyen rekord az adatbazisban. ha van akkor csak felulirod a szoveget, ha nincs akkor letrehozol egy uj bejegyzest.

    a masodik dolog: nem tudom milyen oldalrol beszelunk. forum,blog ,hirdetesi oldal....stb
    Információs oldal lesz ahol sok lesz a leírás bizonyos dolgokkal kapcsolatban, például technológiai információ, bemutatkozunk, vásárlási feltételek, stb...

    Ugyanakkor lesznek termékek is, és úgy szeretném hogy a találati listát két részre bontanám: Keresett kulcsszó a termékek nevében vagy leírásában és akkor ott tulajdonképpen egy termék lista lenne, illetve lenne egy olyan block ahol a keresett kifejezés az egyéb tartalmakban szerepel, mint pl.: technológiai információ.



  9. #9
    Tag
    Csatlakozott
    08-10-08
    Hozzászólás
    91
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Szöveg, vagy szöveg részlet keresése saját belső oldalainkon

    Csinálgatom, csinálgatom a keresőt ha elkészültem majd beszúrom ide elemzésre.

    Ugyebár egy keresőnél alapfeltétel, hogy ne csak pontos egyezéseket keressen, főleg ugye akkor ha több szavas keresési feltételt adunk meg. Ezáltal egy sokkal pontosabb és kiterjedtebb listát tudunk adni a kereső felhasználónak, illetve segíthetünk neki abban ha pontos találat nincs, akkor merre menjen tovább.

    Ugye tiszta sor, feltételezem, hogy a látogató szóközzel választja el a szavakat egymástól és betartja a gépelési szabályokat, tehát vesszővel való elválasztás esetén is lesz egy szóköz két szó között.
    De ez nem elégséges, hiszen ha valami bonyolult névre keres rá amiben esetleg még típus szám is van és a látogató úgy adja meg, hogy tx-2800 és az adatbázisomban úgy van hogy tx 2800 akkor nem tudom neki megjeleníteni a kereső találati listáján, elhagyja az oldalamat anélkül hogy vásárolt volna pedig lett volna amit szeretett volna.

    Szóval készítettem egy tömböt melyben a lehetséges szeparátorokat összegyűjtöttem, ilyenkor azonban nem tudom megúszni egy egyszerű explode-al hiszen nem egyfajta hanem több szeparátor van.
    Esetleg van valakinek erre egy bevált módszere?



  10. #10
    Tag
    Csatlakozott
    08-10-08
    Hozzászólás
    91
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Szöveg, vagy szöveg részlet keresése saját belső oldalainkon

    Közben megtaláltam egy külföldi fórumon, hogy a preg_split illetve split függvények a segítségemre lehetnek. Ma a php.net-es manual is egy kereső kifejezéses példát hoz fel a használatára

    Kód:
    <?php
    // split the phrase by any number of commas or space characters,
    // which include " ", \r, \t, \n and \f
    $keywords = preg_split("/[\s,]+/", "hypertext language, programming");
    ?>
    viszont akkor egy másik kérdés: a preg_split első paramétere határozza meg hogy mik a feltételezett szeparátorok, viszont maga a jelőlés nem túl egyértelmű. sokszor találkoztam már ilyen jelöléssel, de egyáltalán nem értem.
    Ez ami a példában is van elvileg a szóköz és vessző karaktereket veszi figyelembe, de ezt honnan lehet tudni? továbbá azért kiegészíteném még egy-két szeparátorral...



Oldal: 1 / 2 12 UtolsóUtolsó

A téma címkéi:

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •