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:
  1. 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:
  1. strtr('cserélendő szöveg'array(  
  2.         'á' => 'a''é' => 'e''í' => 'i',  
  3.         'ó' => 'o''ö' => 'o''ő' => 'o',  
  4.         'ú' => '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:
  1. $text = iconv('UTF-8''US-ASCII//TRANSLIT'$text);  
Forrás: http://www.ficgs.com/How-to-remove-accents-in-PHP-f3057.html