Autor | Zpráva | ||
---|---|---|---|
dan55 Profil |
#1 · Zasláno: 24. 2. 2011, 07:22:16 · Upravil/a: dan55
Ahoj,
dělám na jednom katalogu a mám udělat takový black list a když se slovo bude shodovat, vypíše to určitý text. Přidávání přes administraci, databáze MySQL. Napadlo mě, při každém přidání odkazu stáhnout data z databáze do pole, potom to projet cyklem s strpos() nebo nějakým regulárem. Ovšem nevím, co je správnější. Jestli regulár nebo strpos? Dík. |
||
ShiraNai7 Profil |
#2 · Zasláno: 24. 2. 2011, 08:15:51
Lze to hledat přímo SQL dotazem:
SELECT COUNT(*) FROM `blacklist` WHERE `slovo` LIKE '%neco%'; Pokud chcete reguláry, tak načíst blacklist a po jednom matchovat. |
||
dan55 Profil |
#3 · Zasláno: 24. 2. 2011, 13:04:15
Budou to celé texty, takže použiji ty reguláry. Nebo místo %neco% vložit přímo celý text?
|
||
Alphard Profil |
#4 · Zasláno: 24. 2. 2011, 14:30:37
dan55:
Do reguláru lze jednotlivá slova pospojovat jedna|dve|tri . Strpos() (nebo asi lépe strripos()) je samostatně rychlejší, v cyklu se to ale sčítá. Myslím, že do rozumného počtu slov bude rychlejší regulár, pro hodně velký počet slov, kdy by se mohla přesáhnout maximální délka reguláru, bude lepší strpos + cyklus.
Nějak to naimplementujte a když půjde, je to ok. Tahle část si myslím, že brzda nebude (není to tak náročná operace a přidání něčeho zřejmě nebude tak časté), takže bych kvůli třem řádkům kódu nedělal třídenní analýzu, kdyžtak se to přepíše. |
||
dan55 Profil |
#5 · Zasláno: 24. 2. 2011, 15:30:55 · Upravil/a: dan55
Alphard:
Jasně díky za vysvětlení, udělám to tím regulárem (pospojovat), stovky slov to nebudou a přidání nemusí být tak časté aby spadl server :). |
||
Časová prodleva: 13 let
|
0