ugrás a tartalomhoz

Ékezetes karakterek cseréje

Don Oden · 2010. Jan. 11. (H), 21.55
Sziasztok!
Fura dolgot észleltem miközben egy felhasználóbarát url-t szerettem volna készíteni egyik oldalamon.

Készítettem egy függvényt, ami átalakítja kiszedi a kódból a speciális kaarktereket, és a szóközök helyére egyedi elkülőnítő karaktert tesz. Tökéletesen működik az a része, viszont az ékezetes karaktereket az istenért sem akarja lecserélni php 4.0.3-at futtató szerveren.
$accents = array(
            'á' => 'a', 'Á' => 'A',
            'ä' => 'a', 'Ä' => 'A',
           
            'é' => 'e', 'É' => 'E',
           
            'í' => 'i', 'Í' => 'I',
           
            'ó' => 'o', 'Ó' => 'O',
            'ö' => 'o', 'Ö' => 'O',
            'ő' => 'o', 'Ő' => 'O',
           
            'ú' => 'u', 'Ú' => 'U',
            'ü' => 'u', 'Ü' => 'U',
            'ű' => 'u', 'Ű' => 'U'
    );
   
    foreach ($accents as $key => $val)
    {
        $str = preg_replace('#'.$key.'#', $val, $str);
    }


így néz ki a kód. A lényege az egésznek, hogy tökéletesen működik php 5 alatt, egy újabb verziójú php 4 alatt is, amit itthoni gépre tettem fel, azon a szerveren viszont az istenért sem akar futni. Kíváncsi vagyok tudtok-e valami jó tanácsot mondani ezzel kapcsolatban, amit már előre meg is köszönnék :)
 
1

Szerk

Don Oden · 2010. Jan. 11. (H), 21.59
4.3.10-22 a verziószáma a szervernek.
Ja és ha valakinek van véleménye, tapasztalata webtar.hu hoszting szolgáltatásával kapcsoaltosan és kifejtené annak is örülnék.
2

Próbáld ki ezt: $str =

deejayy · 2010. Jan. 12. (K), 09.45
Próbáld ki ezt:
  1. $str = strtr(strip_tags(iconv('utf-8''latin2'$str)), "éáíüúűőöóÉÁÍÜÚŰÓÖŐ ""eaiuuuoooEAIUUUOOO.");  
3

Vagy ezt

Gixx · 2010. Jan. 12. (K), 17.10
  1. $CHARMAP = array(  
  2.   'ö' => 'o',  
  3.   'Ö' => 'O',  
  4.   'ó' => 'o',  
  5.   'Ó' => 'O',  
  6.   'ő' => 'o',  
  7.   'Ő' => 'O',  
  8.   'ú' => 'u',  
  9.   'Ú' => 'U',  
  10.   'ű' => 'u',  
  11.   'Ű' => 'U',  
  12.   'ü' => 'u',  
  13.   'Ü' => 'U',  
  14.   'á' => 'a',  
  15.   'Á' => 'A',  
  16.   'é' => 'e',  
  17.   'É' => 'E',  
  18.   'í' => 'i',  
  19.   'Í' => 'I',  
  20. );  
  21.   
  22. $string = strtr($string$CHARMAP);  
  23.   
  24. // minden más karakter  
  25. $string = preg_replace('/[^a-zA-Z0-9]/','_',$string);  
ha viszont maradsz az iconv-nál, akkor javaslom, hogy a következőképp alakuljanak a paraméterek:
  1. $string = iconv('UTF-8','ISO-8859-2//TRANSLIT',$string);  
4

meg van a hiba, köszi

Don Oden · 2010. Jan. 13. (Sze), 01.58
Megtaláltam! :) az egyes fájlok kódlapjai eltértek, és mivel myisam az adatbzis nem ad vissza kódkészletet sem, miután mindent utf8-ra állítottam működött tökéletesen!

Azért köszönöm a segítségeteket!
Rendes volt tőletek :)

Most legalább van egy sokadik topic amiben megjelenik ez az apróság :D