Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zamiana liter narodowych
northwest
post 3.11.2008, 14:14:41
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
piotrooo89
post 3.11.2008, 14:16:18
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




można też do tablicy to wszytsko powrzucać i odpowiednio pobierać i zamieniać.


--------------------
Go to the top of the page
+Quote Post
northwest
post 3.11.2008, 14:57:07
Post #3





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


możesz podać jakiś przykład??smile.gif
Go to the top of the page
+Quote Post
piotrooo89
post 3.11.2008, 15:02:48
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




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.


--------------------
Go to the top of the page
+Quote Post
mpps
post 24.11.2008, 22:46:09
Post #5





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


  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

Ten post edytował mpps 24.11.2008, 23:30:26


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
Go to the top of the page
+Quote Post
nitek
post 25.11.2008, 10:57:33
Post #6





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


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 :/

Ten post edytował nitek 25.11.2008, 10:58:26


--------------------
Go to the top of the page
+Quote Post
olenka29
post 25.11.2008, 12:14:50
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 25.11.2008
Skąd: bydgoszcz

Ostrzeżenie: (0%)
-----


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);
}
?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:36