Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [html/php]problem z konwersja polskich znakow
Bojakki
post 14.09.2008, 20:53:43
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Znalazlem taka funkkcje:

  1. <?php
  2. function plCharset($string) {
  3.  
  4.    $string = strtolower($string);
  5.    $polskie = array(',', ' - ',' ','ę', 'Ę', 'ó', 'Ó', 'Ą', 'ą', 'Ś', 's', 'ł', 'Ł', 'ż', 'Ż', 'Ź', 'ź', 'ć', 'Ć', 'ń', 'Ń','-',"'","/","?", '"', ", 'ś', '!','.', '&', '&amp;', '#', ';', '[',']','domena.pl', '(', ')', '`', '%', '”', '„', '…');
  6.    $miedzyn = array('-','-','-','e', 'e', 'o', 'o', 'a', 'a', 's', 's', 'l', 'l', 'z', 'z', 'z', 'z', 'c', 'c', 'n', 'n','-',"","","","","",'s','','', '', '', '', '', '', '', '', '', '', '', '', '');
  7.    $string = str_replace($polskie, $miedzyn, $string);
  8.  
  9.    $string = preg_replace('/[^0-9a-z-]+/', '', $string);
  10.  
  11.    $string = preg_replace('/[-]+/', '-', $string);
  12.  
  13.    $string = trim($string, '-');
  14.  
  15.    $string = stripslashes($string);
  16.  
  17.    $string = urlencode($string);
  18.  
  19.    return $string;
  20. }
  21. ?>


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

Ten post edytował Bojakki 14.09.2008, 21:02:14


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
rybik
post 14.09.2008, 22:15:40
Post #2





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 29.07.2006

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


bo skrypt jest w UTF a baza wypuszcza ISO-8859-2, skonwertuj polskie znaki w skrypcie (najprościej cały ten fragment) z utf do iso-8859-2,

dodatkowe uwagi dla zainteresowanych

1. 'ó' != strtolower('Ó')
2. preg_replace i preg_match można wysypać stringiem ze znakami narodowymi, wypada używać do tego funkcji mb_
Go to the top of the page
+Quote Post
Bojakki
post 14.09.2008, 22:24:04
Post #3





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Rzeczywiscie. Znalzlem funkcje uniwesalna dla iso, win i utf i wszystko dziala jak trza.


--------------------
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: 14.08.2025 - 02:31