<?php function plCharset($string) { $polskie = array(',', ' - ',' ','ę', 'Ę', 'ó', 'Ó', 'Ą', 'ą', 'Ś', 's', 'ł', 'Ł', 'ż', 'Ż', 'Ź', 'ź', 'ć', 'Ć', 'ń', 'Ń','-',"'","/","?", '"', ", 'ś', '!','.', '&', '&', '#', ';', '[',']','domena.pl', '(', ')', '`', '%', '”', '„', '…'); $miedzyn = array('-','-','-','e', 'e', 'o', 'o', 'a', 'a', 's', 's', 'l', 'l', 'z', 'z', 'z', 'z', 'c', 'c', 'n', 'n','-',"","","","","",'s','','', '', '', '', '', '', '', '', '', '', '', '', ''); $string = str_replace($polskie, $miedzyn, $string); $string = preg_replace('/[^0-9a-z-]+/', '', $string); $string = preg_replace('/[-]+/', '-', $string); $string = trim($string, '-'); $string = stripslashes($string); $string = urlencode($string); return $string; } ?>
Funkcja dziala dobrze, jezeli dam jej jakiegos stringa bezposrednio, jezeli jednak wyciagam jakis tekst z bazy to wtedy zamiast liter ą i ś nie ma nic. W bazie mam kodowanie latin2_general_ci. Wszystko w bazie jak i na stronie wyswietla sie dobrze (to znaczy bez krzakow i sa polskie znaki), a zamienia zle:/