| start Webszerkesztés egyéb PHP alapú megoldások Keresés szövegben |
| A kereséshez kattints a fentebb látható mezőbe > írd be a keresett kifejezést majd nyomj egy ENTER-t. FRISS FÓRUMTÉMÁK Egyéni rajzok saját 5let alapján III. [Tirion] offtopic III. [BlackY] Emotikon hetek [Halfbreed] Joomla! (Mambo 4.5.x) [LeGaS] Help! [Mozaik] Segítséget kérnék [LeGaS] Hálózat [Flatron] Általános kérdések [Tirion] Php-s Probléma... [unduruxi] SMF [hitetlen] LAPAJÁNLÓ szoftver.hu Adobe, Macromedia, Extensis, Corel, Morphologic, Quark és még sok egyéb termék magyarországi forgalmazója RSS / META STATISZTIKA |  |
Keresés szövegben |  |
Biztos akadt mindenkinek már olyan problémája hogy volt egy szöveg amiben megszeretett volna keresni egy adott szót, kifejezést. Vagy a honlapodra szerettél volna olyat hogy a júzer rátudjon keresni egy cikkben, valamilyen szóra. Ilyenkor biztos elgondolkodtál rajta, hogy mivel is lenne a legcélszerűbb ezt megvalósítani, milyen lehetőségek is vannak erre a php-ban. Több megoldás közül is válogathatunk, nézük is őket szépen sorjában. Kezdjük a metaphone() függvénnyel. Ez a függvény egy sztring metaphone-értékét számolja ki, ami egy jelzés arra, hogyan hangzik a szó. Az "úgy hangzik, mint" típusú kereséseknél lehet hasznunkra. Szintaktikája: metaphone(sztring); Azt hiszem egyértelmű, egy értéket vár, azt a karaktersorozatot melynek a metaphone értékét szeretnénk kiszámolni. Második a soundex() függvény. Hasonló a metaphone függvényhez. Szintaktikailag is ugyanaz. A harmadik a levenshtein() függvény. Ez már egy kicsit más. Két sztring közötti Levenshtein-távolságot számolja ki, ami az egyezőség mértéke. Azaz hány karaktert kell törölni, hozzáadni, vagy lecserélni egy sztringben ahhoz hogy azonos legyen az adott sztringel. Minél kisebb a szám annál jobb. Ezt a függvényt jól tudjuk hasznosítani szövegben való keresésekkorm de talán egy kicsit pontatlan. Nézzünk egy példát. A harapófogó és a maratottfogó(meg ne kérdezzétek mi az) közti Levenshtein távolság 5. Aki nem hiszi, számolja csak ki. Szintaktikája: levenshtein(sztring1, sztring2); A sztring1 és a sztring2 a két összehasonlítani kívánt karakterlánc. Jöjjön a negyedik, a similar_text() függvény. Két sztring közötti hasonlóságot számolja ki. Hasonló a levenshtein-hez de pontosabb és több feldolgozási időt igényel. Szintaktikája: similar_text(sztring1, sztring2, $p); A sztring1 és a sztring2 az összehasonlítani kívánt karakterláncok. A harmadik értéket nem muszály megadni, a hasonlóság százalékos értékét kapjuk meg a megadott változóba. Mi ezek közül a similar_text() fügvénnyel fogunk részletesebben foglalkozni. Írtam egy kis függvényt ami megkeres egy adott sztringet egy szövegrészben és kiírja a szöveget kiszínezve benne a keresett sztringhez hasonló részeket. Lássuk is a kódot, a magyarázat utána kövekezik: kód<?php function searchText($text, $key, $stats = true) { $num = 0; $words = explode(' ', $text); foreach ($words as $out) { $result = similar_text($key, $out, $p); if ($p >= 60 ) { if ($stats == true) { print('<br />' . $p . '% : ' . $out); } else {} $output[$num] = $out; $num = $num + 1;} } foreach ($output as $result) { $text = str_replace($result, '<font color="#EE0000">' . $result . '</font>', $text); } print('<br /><br />' . $text); } ?> A függvény három értéket vár, az első, az a szövegrész melyben keresni szeretnénk, a második az a sztring amit keresni szeretnénk, és a harmadik érték egy opcionális érték, nem muszály megadni. Ha true az értéke akkor a függvény kiírja az eredmények keresési értékeit, szóval hogy melyik talált szónak hány százalékos a hasonlósága a keresett szóval, egyébként nem ír ki semmit. A $num változó egy tömb számozásához kell majd egy ciklusban. A szöveget melyben keresni fogunk, egy tömbbe tördelem a szóközök mentén. Ez a tömb a $words tömb. Ezekután végig megyek a $words tömb elemein a foreach() szerkezettel. Majd egy feltételes szerkezet segítségével, ha a $stats értéke igaz kiiratom a kereséi eredményeket százalékban, majd az eredményeket, melyek megfeleltek annak a feltételnek, hogy 60% vagy nagyobb a hasonlóságuk a keresett szóval, az $output tömbbe pakolom. Majd a következő foreach() szerkezetben, kicserélem a talált szavakat, a szövegben és "kiszínezem" őket. Aztán kiíratom a formázott szöveget. És akkor nézzük hogy is hívjuk meg: kód<?php $szoveg = '- illegális (warez) fizetős honlapok és ftp szerverek reklámozása (pl. smsweb), erre vannak más felületek. - Tilos "pénzért írok warez CD-ket", "pénzért másolok" dolgokat hirdetni, olyan formában sem hogy "kipróbáltam ezt és ezt és nagyon jó" úgyis tudjuk miről van szó.. ! - a moderálás lehetőségét fenntartom, egyes esetekben él(het)ek is vele. - a szekciód tartalmáért mind témák, mind pedig hozzászólások tekintetében Te vagy a felelős, a Szabályzatot be kell tartanod, és tartatnod. - Mások szólásszadságának csorbítására alkalmas hozzászólások, fenyegetés, személyeskedés, rágalmazás, emberi méltóság megsértése, a vitapartner lejáratása, szidalmazása, minősíthetetlen hangnem. - sértő, obszcén, vulgáris, rágalmazó, gyűlöletkeltő valamint bármilyen más módon jogsértő hozzászólások - Üres hozzászólások, illetve a véletlenül duplán beírt hozzászólások egyike. - Moderátor által törölt hozzászólások visszamásolása. - A kulturált, folyamatos társalgást feltűnően és szándékosan akadályozó és zavaró, agresszív vagy off-topic hozzászólások. - Céltalanul vitát szító hozzászólások. - A szándékosan nagyméretű képek, szövegfájlok indokolatlan felmásolása ami a rendszer működését lényegesen lassítja. - A moderálással és szerkesztéssel kapcsolatos véleményeket, észrevételeket kifejezetten az erre a célra létrehozott "Ha először vagy itt / moderálás" topicban lehet beírni, ellenkező esetben törlésre kerülnek. - Bárki személyes adatának (pl. név, munkahely, lakhely, beosztás) engedély nélküli közzététele. - Szándékos flood és reklám esetén. Ha kérdésed vagy mondanivalód van, azt 1 témába tedd be, a többit törölni fogom.'; searchText($szoveg, 'warez'); ?> Én a tutorial.hu fórum szabályzatának egy részletében kerestem. :) Méghozzá a warez szót. Mivel nem adtam meg a harmadik értéket, és mivel az alapbeállítás true, a függvény kiírja nekem a keresési eredményeket is. Majd utána szépen a szöveget, kiszínezve benne a warez és a hozzá hasonló szavakat. Hogyha véletlenül azt írom be hogy waroz, akkor is vaószínű hogy ezt az eredményt kapom, hiszen a pontosság csak 60%-ra van állítva. Körülbelül ennyi. Ezt ezer meg ezer féle módon lehet még módosítani, ez tényleg csak az alap. Már akkor tökéletesen használható életszerű helyzetekben ha, csinálsz egy formot és a formból kapott eredmény a keresett karakterlánc. Szóval tessék próbálgatni, játszani vele és ha bármiféle probléma van vele akkor megtaláltok a fórumon. Rendo
< Előző |  | Következő >
[vissza]
(C) 2006 www.tutorial.hu - photoshop és webszerkesztés leírások Joomla! is Free Software released under the GNU/GPL License. | ### FÓRUMOK [WEB] Honlapkészítés témában az alábbi 2 alfórumunkat tekintsd meg: - webprogramozás (PHP, MySQL) - webszerkesztés, webdesign (ami a honlapkészítéssel kapcsolatos lehet) Az olvasáshoz nem, de a hozzászóláshoz regisztrálni kell magad. Javasoljuk a kereső használatát a kérdések feltevése előtt.. ;) ### LETÖLTÉSEK [WEB] Forráskód szerkesztők Könyvek Link menedzsment Kódoptimalizálás Scriptek, kódok Szervercsomagok ### ONLINE CUCCOK Linkek... - URL "tisztítás" - Url továbbítás - Linkrövidítés - Linkhosszabítás - halott linkek ellenőrzése - Aktuális IP címed Színek... - Colormixers - wellstyled.com - ReedDesign Colors - crieseuwebsite.com - more.btexact.com - colorcube - behr.com - workbook - Defence Mechanism ColorToy - ColorWhore - dev.sessions.edu - ficml.org - colorschemer.com - online - themaninblue.com - technicolor - colormatch.dk - nebulus.org - fullscreen color picker CSS... - Jano - CSS, usability stb. - js.hu CSS puska - CSS Box Border Teszt - CSS - CSS compatibility - Gördítősáv módosítása - CSS lapgenerátor I. Biztonság... - .htaccess és .htpasswd - .htaccess user tiltás - Egyéni hibalapok - Htaccess direktlink tiltás - Jelszavas védelem - Jelszó generátor I. - Jelszó generátor II. - MD4, MD5, SHA-1 Forráskód... - Tidy (online HTML tisztító) - HTML encoder - HTML titkosítás - E-mail encoder Generálnak ezt-azt... - i-Frame - Marquee - Felugró ablak I. - Felugró ablak II. - Meta tagok - Favicon I. - Favicon II. Képekhez... - JPG PNG GIF optimalizáló - kulcsszavak (keywords) - Online képszerkesztő - Honlap betöltési ideje - robots.txt generator Mintaszöveg... - lipsum.com - lorem-ipsum.info - malevole.com Fordítás... - translit.ru - dict.sztaki.hu szótár - babelfish szótár Egyéb... - - HTMLinfo - webes technológiák - Webdesigner's Handbook |