Autor Zpráva
Mato
Profil *
Ahoj,
mam taky problem:
-mam disksiu pre istu firmu, a ta ma konkurenciu, a potrebujem cenzurovat urcene nazvy,
ale nestaci obycajne str_replace() , lebo potrebujem blokovat nazov v roznych formatoch a to takto-
mam slovo "casak" ale potrebujem aby slovo bolo cenzurovane aj ak bude napisane CasaK, CaSaK , casak , CASAK, CAsaK atd...

Prosim o pomoc... :)
RAmses
Profil *
ja bych to udelal takto:

		     

$slovo = Split("[[:blank:]]+", $text); //rozdeli text podle mezer
$find_me = 'casak'; //co budem hledat
for ($index=0; $index<Count($slovo); $index++)
{
$pos = strpos(StrToLower($slovo[$index]), $find_me); //kouknem na pozici retezce find_me
if ($pos == true)
{
$slovo[$index] = "cenzurovano";
}
}
RAmses
Profil *
nejsem si jisty tim $pos == true, obvykle pouzivam !=false ale true beztak taky de
habendorf
Profil
Ono je to ve finále stejně k ničemu. Tady máš některý slova taky zakázaný, ale když napíšu c*r*a*c*k, _crack, c.rack, ...
Mato
Profil *
OK, ale nevies dat konkretny priklad pouzitia, ako dostat vyfiltrovany text ???
roberta
Profil
princíp môže byť taký, že si všetky znaky v reťazci prekonvertuješ na veľké písmená (funkcia strtoupper ) alebo malé (funkcia strtolower ) a potom by to už malo byť jednoduché...
Mato
Profil *
To habendorf -> Mozno by to slo cez rčegularne vyrazy...
Mato
Profil *
To roberta -> Ale ako, aby ostatny text zostal v povodnej velkosti ??
RAmses
Profil *
Jeste me neco napadlo, vydrzte chvilku ja to napisu
RAmses
Profil *
Mato

To habendorf -> Mozno by to slo cez rčegularne vyrazy...


Vzdyt to co jsem ti napsal uchova text jak byl, jenom misto slov ktere obsahuji zakazany retezec bude cenzurovano

Spis bz to melo bzt takhle:

     $pos = strpos(StrToLower($slovo[$index]), $find_me);   //kouknem na pozici retezce find_me


if ($pos == true)

{

$filtered_text .= "cenzurovano";

}
else
{
$filtered_text .= $slovo[$index];
}
RAmses
Profil *
Jednou jsem videl funkci ktera se pouyiva pri vzhledavani, ona nejak vraci hodnotu urcujici jak moc se hledane slovo podoba nejakemu jinemu slovu, ale nemam ted cas to najit, musim pro segru, tak jestli to do meho navratu nevyresite tak to napisu
llook
Profil
Spolehlivě to nejde nikdy. Každý určitě zná e-maily nabízející vl@qru.

Do určité míry to filtrovat lze, třeba takhle:
$text = $_POST['text'];

$vyraz = '/(c[^a-z]*a[^a-z]*s[^a-z]*a[^a-z]*k)/i';
$text = preg_replace($vyraz, '(cenzura)', $text);

Ale vždycky se nějaká obklika najde.
Mato
Profil *
Jojo, diky za pomoc ;-)
Ak vas este nieco napadne napiste... :-)
Mato
Profil
2 llook -> A ako by som mohol filtrovat viac slov naraz ???
Toto téma je uzamčeno. Odpověď nelze zaslat.

0