Autor Zpráva
Amunak
Profil
Mám celkem jednoduchý kód s reg. výrazy. Má nahrazovat textové reprezentace smajlíků za jejich obrázky. Všechno funguje v pohodě, pokud do reg. výrazů nepřidám z krajů \b. Chci to tam, aby se nestalo, že někdo napíše abc:de a uprostřed se udělal smajlík. Když to tam ale přidám (viz kód), tak se žádný smajlík nepřevede. Nevíte, proč to nefunguje?



 $a = array(
        '/\b:-?D\b/is',
        '/\b:-?\)\b/is',
        '/\b:-?O\b/is',
        '/\b:-?P\b/is',
        '/\b:-?\b\(/is',
        '/\b;-?[D\)]\b/is'
    );
    $b = array(
        '<img src="smilies/grin.png" alt=":-D">',
        '<img src="smilies/smile.png" alt=":-)">',
        '<img src="smilies/surprised.png" alt=":-O">',
        '<img src="smilies/tongue.png" alt=":-P">',
        '<img src="smilies/unhappy.png" alt=":-(">',
        '<img src="smilies/grin.png" alt=";-)">'
    );
    $text = preg_replace($a, $b, $text);
__construct
Profil
Lebo to máš zle použité - nechcel si náhodou toto:
\B(:-?D)\b
tiso
Profil
Amunak: \b ako hranica "slova" nefunguje na znaky, ktoré tam používaš. Miesto prvého \b daj \s.
Amunak
Profil
tiso:
Bohužel, tohle nefunguje. Zkoušel jsem i \s na obou stranách.

__construct:
Díky moc, to je ono! :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0