Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zamiana liter narodowych
Forum PHP.pl > Forum > Przedszkole
northwest
Witam,
Znacie może sposób na zamianę znaków narodowych na odpowiedniki łacińskie (±=a, ł=l itp). Wiem że można strreplacem pojechać, ale to niestety nie zadziała u mnie - bo mam userów z różnych krajów (i w grę wchodza nie tylko polski znaczki)...

Macie może jaki¶ pomysłquestionmark.gif
piotrooo89
można też do tablicy to wszytsko powrzucać i odpowiednio pobierać i zamieniać.
northwest
możesz podać jaki¶ przykład??smile.gif
piotrooo89
co¶ w ten deseń
  1. <?php
  2. $znaki = array('±'=>'a','ł'=>'l','ó'=>'o');
  3. ?>


i tak dalej. poĽniej jak spotkasz taki znak to podsawiasz z tablicy.

btw. było już kiedy¶ na forum poszukaj.
mpps
  1. <?php
  2. function remove_local_chars($string)
  3.    {
  4.        $unPretty = array('/ä/', '/ö/', '/ü/', '/Ä/', '/Ö/', '/Ü/', '/ß/',
  5.            '/±/', '/ˇ/', '/ć/', '/Ć/', '/ę/', '/Ę/', '/ł/', '/Ł/' ,'/ń/', '/Ń/', '/ó/', '/Ó/', '/¶/', '/¦/', '/Ľ/', '/¬/', '/ż/', '/Ż/',
  6.            '/©/','/®/','/ą/','/ľ/','/Ÿ/','/Ŕ/','/Á/','/Â/','/Ă/','/Ä/','/Ĺ/','/Ç/','/Č/','/É/','/Ę/','/Ë/','/Ě/','/Í/','/Î/','/Ď/','/Ń/',
  7.            '/Ň/','/Ó/','/Ô/','/Ő/','/Ö/','/Ř/','/Ů/','/Ú/','/Ű/','/Ü/','/Ý/','/ŕ/','/á/','/â/','/ă/','/ä/','/ĺ/','/ç/','/č/','/é/','/ę/',
  8.            '/ë/','/ě/','/í/','/î/','/ď/','/ń/','/ň/','/ó/','/ô/','/ő/','/ö/','/ř/','/ů/','/ú/','/ű/','/ü/','/ý/','/˙/',
  9.            '/Ţ/','/ţ/','/Đ/','/đ/','/ß/','/Œ/','/œ/','/Ć/','/ć/','/µ/');
  10.  
  11.        $pretty   = array('ae', 'oe', 'ue', 'Ae', 'Oe', 'Ue', 'ss',
  12.            'a', 'A', 'c', 'C', 'e', 'E', 'l', 'L', 'n', 'N', 'o', 'O', 's', 'S', 'z', 'Z', 'z', 'Z',
  13.            'S','Z','s','z','Y','A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','N',
  14.            'O','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e',
  15.            'e','i','i','i','i','n','o','o','o','o','o','o','u','u','u','u','y','y',
  16.            'TH','th','DH','dh','ss','OE','oe','AE','ae','u');
  17.  
  18.        $permalink = strtolower(preg_replace( $unPretty, $pretty, $string ));
  19.        return str_replace( " ", "_", preg_replace( "/[^a-zA-Z0-9_ ]/", "", $permalink ) );
  20.    }
  21. ?>


kod znalazłem tutaj
nitek
ostatnio tez szukałem podobnej funkcji. u mnie egzamin zdało coś takiego:

  1. <?php
  2. strtr($user_name, 'ĘÓˇŚŁŻŹĆŃęóąśłżĽćń', 'EOASLZZCNeoaslzzcn')
  3. ?>


ps - w miejscu polskich znaków mam 'krzaczki', ponieważ strona jest w iso-8859-2

//edit
Sorry! nie doczytałem, że chodzi nie tylko o polskie znaki :/
olenka29
Miałam do napisania ostatnio skrypt który zamieni polskie znaki (jak i spacje) w nazwie plików.

CODE
header('Content-type: text/html; charset=utf-8');
define('DIRECTORY','./');
$polish = array('±','ˇ','ę','Ę','¶','¦','ć','Ć','Ľ','¬','ż','Ż','ł','Ł','ó','Ó','ń','Ń',' ');
$replace_polish = array('a','A','e','E','s','S','c','C','z','Z','z','Z','l','L','o','O','n','N','_');
$DirIterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(DIRECTORY));
foreach ($DirIterator as $File) {
$file_array = array();
$changed_file_name = '';
$file_array = explode('.',$File->getFileName());
$file_array[0] = str_replace($polish,$replace_polish,$file_array[0]);
$changed_file_name = join('.', $file_array);
echo $File->getPathname().' '.$File->getPath().'/'.$changed_file_name.'
';
rename ($File->getPathname(),$File->getPath().'/'.$changed_file_name);
}
?>
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.