Autor Zpráva
anonymní
Profil *
dobrý den,
potřebuji aby mi tento kód:
<?php

header('Content-type:text/plain;charset=UTF-8');
setlocale(LC_ALL, 'cs_CZ');
$str = 'Příliš žluťoučký kůň úpěl ďábelské ódy';
echo preg_replace('/\w+/u', '[\\0]', $str);


vypisoval toto:
[Příliš] [žluťoučký] [kůň] [úpěl] [ďábelské] [ódy]

ale na výstupu je tohle:
[P]ří[li]š ž[lu]ť[ou]č[ký] [k]ůň ú[p]ě[l] ďá[belské] ó[dy]

Při kódování WIN1250 to funguje správně, při UTF-8 to dělá problémy. Nevíte co s tím?
Johnik
Profil
header('Content-type:text/plain;charset=UTF-8');
$str = 'Příliš žluťoučký kůň úpěl ďábelské ódy';
echo "[".str_replace(" ", "][", $str)."]";
anonymní
Profil *
Johnik
tjn, ale mě já potřebuju aby to pracovalo třeba i s tímto:

Příliš, žluťoučký? kůň - úpěl ďábelské: ódy.

a dávat tam str_replace pro každý "\W" znak asi není moc dobré řešení
anonymní
Profil *
po progůglování internetu jsem to konečně našel:

<?php
echo preg_replace('/\p{L}+/u', '[\\0]', $str);

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: