Autor Zpráva
IdemeNaHavaj
Profil
Ahoj
mám toto:
strtolower(preg_replace('/\s+/', ' ', preg_replace("/[^a-zA-Z0-9\s]/", "", $_POST["badwords"])));
môžete mi to prosím niekto upraviť tak, aby to bralo aj diakritiku?
anonymníí
Profil *
IdemeNaHavaj:
A co jsi už zkoušel? Není to tak těžké.
IdemeNaHavaj
Profil
anonymníí:
nič ja to mám z googlu, nevyznám sa v tom
anonymníí
Profil *
IdemeNaHavaj:
OK, tak je na čase seznámit se s regulárními výrazy, aby ses za chvíli neptal na další základní věc s nimi.

1. Mrkni se na php.net, jaké 3 parametry má funkce preg_replace, kterou používáš dvakrát
2. Na http://www.regularnivyrazy.info zjistíš, co znamená \s+ a sekvence znaků mezi [ a ], tedy [^a-zA-Z0-9\s]. Přidat diakritiku pak už zvládneš.

Celé by ti to nemělo zabrat více jak 15-20 minut studia, doporučuji.
juriad
Profil
anonymníí:
Opravdu si myslíš, že je jednoduché najít \p{L}? Je to dost dobře skryté a těžko nalezitelné (php.net/manual/en/regexp.reference.unicode.php) a nikde není napsané, že je to to, co IdemeNaHavaj potřebuje.

IdemeNaHavaj:
'/[^\p{L}\d\s]/u'
Kvůli zpětným lomítkům je lepší zapisovat rexey do apostrofů. To u na konci je modifikátor, který zapíná zpracování podle Unicode.

Pročti si i dokumentaci přímo v PHP: php.net/manual/en/reference.pcre.pattern.syntax.php
IdemeNaHavaj
Profil
ďakujem moc
anonymníí
Profil *
juriad:
Ano, toto tak snadné najít není.

Nicméně nyní jsem myslel obyčejné přidání českých znaků do povolených (resp. nepovolených) znaků. Pro tazatele by toto bylo lehce výhovnější a uměl by si ne/povolené znaky sám korigovat. S tím, co jsi napsal ty, sem za chvilku přijde znovu s podobným dotazem.

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