Chcete upraviť adresu stránky a zároveň chcete aby sa na stránku používateľ dostal aj za pomoci starej linky a zároveň sa chcete vyhnúť duplicitnému obsahu? Alebo chcete surférom ponúknuť rýchle riešenie pri hľadaní stránky so skomolenou adresou (obsahujúcou nejaký preklep) ? Využite PHP funkciu similar_text().
Ak dopyt na (napr.) článok po zadaní adresy nevráti výsledok, môžeme používateľovi navrhnúť stránky s podobnou adresou. Ako na to? Môžeme zvoliť jednoduché riešenie (zrejme najjednoduchšie - nad iným som sa ani nezamýšľal) s využitím, už spomínanej funkcie similar_text().
Postup je veľmi jednoduchý. Buď vytiahnúť potrebné dáta všetkých záznamov v tabuľke a porovnávať text, alebo vytvoriť tabuľku, ktorá bude obsahovať všetky dostupné adresy na webe. Záleží od počtu článkov resp. adries. Ja uvediem príklad prvej možnosti (identická možnosť s mojím blogom - sami vidíte, že tu veľa článkov nie je :]).
Ak chcete vidieť skript v ackii, schválne skúste linku ->
http://emer.grafika4u.sk/clanky/php-mysql/ako-sa-branit-proti-preklepom
Navrhnutý kód si samozrejme každý upraví podľa vlastných potrieb :) Dúfam, že bude článok niekomu užitočný. Tak naschled v ďalšom článku.
nie len pre menšie databázy | emer | 6. marca 2010 o 13:16:36Podobný resp. totožný skript (len má iné využitie) používam v jednom projekte, a dá sa povedať, že za rýchly čas (cca 0.3 s) prehľadá aj 40 000 - 70 000 záznamov. Ako sa mi to bude rozrasatať, uvidím, čo to spraví pri väčšom počte.
| blizzboz | 24. marca 2010 o 21:50:32nebolo by lepšie overovať podobnosť textu priamo v databáze?
RE: nebolo by lepšie... | emer | 25. marca 2010 o 13:26:37Áno, aj to som skúšal. Akurát, že pri tých 40 000 záznamoch to trvalo približne 14 sekúnd, čo je oproti 0.3 dosť veľký rodziel.
Na tomto blogu su vyjadrené moje myšlienky, názory a postoje k určitým veciam alebo udalostiam. Preto upozorňujem, že to čo tu napíšem nemusí byť 100% pravda a aj ja sa môžem zmýliť, alebo mať odlišný názor na vec. Texty neprešli jazykovou kontrolou.