ugrás a tartalomhoz

strtr + utf8

SeteboS · 2008. Okt. 26. (V), 12.37
sziasztok. valakinek valami otlet erre:

function mertnemjo ($link){
$link = utf8_decode($link);
$link = strtr($link, utf8_decode(" ÁÂÅAÄÀCÇCDÉÈËEÌÍÎÏLNNÑÒÓÔÕÖRRŠSTUÚUÜÝŽZáâåäàcçcddéeëeèìíîïlnnñòóôoöšsrrtuúuüýžz?
ßAµAµaAeEsSzZzZcClLóÓnN"), "-AAAAAACCCDEEEEIIIILNNNOOOOORRSOTUUUUYZZaaaaacccddeeeeeiiiilnnnooooossrrtuuuuyzz-sAuAuaAeEsSzZzZcClLoOnN");
$link = strtolower($link);
return $link;
}

ez igy szepen es jol mukodik, de nincs benne az Ő es Ű betu.
viszont ha belerakom oket, akkor attol fuggoen h milyen sorrendben raktam oket
bele vagy mindkettot o-ra csereli, vagy mindkettot u-ra.
mit lehet ezzel kezdeni? v miert van ez?

thx
 
1

grrr

SeteboS · 2008. Okt. 26. (V), 15.42
na remek...
vegigszorakoztam az osszes kodlapot, es ugy masfel ora utan
ezt a ket karaktert kulon csereltettem le egy
ereg_replace()-szel.. fantasztikus..
2

Egy megoldás

vdavid · 2009. Dec. 11. (P), 20.08
Én itt találtam meg: http://marc.info/?l=php-general&m=123816639017333&w=2

Angolul nem tudóknak, a linkre kattintani lustáknak és a linkből a megoldást meg nem értőknek röviden annyi, hogy az strtr (PHP 5.2-ben legalábbis biztosan) bizonyos karakterekre rosszul működik több, ha a sztringes megadási módot használod:
pl. strtr('cserélendő szöveg', 'áéíóöőúüű', 'aoeiooouuu');
rosszul működik.

De ha megadod neki tömbként a mapet, hogy mit mire cseréljen, akkor máris frankó lesz:
strtr('cserélendő szöveg', array(
		'á' => 'a', 'é' => 'e', 'í' => 'i',
		'ó' => 'o', 'ö' => 'o', 'ő' => 'o',
		'ú' => 'u', 'ü' => 'u', 'ű' => 'u');
Így már működik.

Remélem, segítettem :)

--
VDavid
3

ISO-8859-1

vbence · 2009. Dec. 11. (P), 20.55
utf8_decode — Converts a string with ISO-8859-1 characters encoded with UTF-8 to single-byte ISO-8859-1

Azaz ISO-8859-1 katereket tartalmazó stringet konvertál. És az Ő Ű nem reprezentálható ISO-8859-1 segítségével.

Ha az ékezeteket szeretnéd eltávolítani, ajánlom ezt:
$text = iconv('UTF-8', 'US-ASCII//TRANSLIT', $text);
Forrás: http://www.ficgs.com/How-to-remove-accents-in-PHP-f3057.html