Portál AbcLinuxu, 9. června 2025 18:11
Zdravím,
potřebuji v PHP překódovat non-ascii znaky do ascii. Problém je, že nevím jak se toto konkrétně překódovává.
Původní řetězec: "testovací řetězec"
Překódovaný: "testovac\195\173 \197\153et\196\155zec"
Takto to má vypadat, předem děkuji za rady ;)
Řešení dotazu:
$ php -r 'echo iconv("UTF-8", "ASCII//TRANSLIT", "testovací řetězec");'
strtr
a str_replace
asi na utf-8 nepůjdou, ale můžete použít preg_replace
:
$string = "testovací řetězec"; echo preg_replace("/([ěščřžýáíé])/e", "chr('92').ord('\\1')", $string);Úplnost vstupní množiny znaků jsem neřešil.
echo preg_replace("/([^a-z0-9])/e", "chr('92').ord('\\1')", $string);
preg_replace("/([^[[:ascii:]])/e", "chr('92').ord('\\1')", $string);prostě tu vstupní množinu si pořešte.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.