Autor Zpráva
dan55
Profil
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
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
Budou to celé texty, takže použiji ty reguláry. Nebo místo %neco% vložit přímo celý text?
Alphard
Profil
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
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 :).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0