Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP]str_replace, zmiana znaków na polskie ;p
rufi
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 3.06.2017

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


po kilkunastu nieudanych próbach przesyłania z chatu gry wiadomości do mysql tak, aby były polskie litery, pomyślałem o funkcji str_replace, ale nie wiem, dlaczego to nie działa oraz czy wogóle ma szanse działać. kod:
  1. <html>
  2. <head>
  3. {$headerinclude}
  4. <title>Chat</title>
  5.  
  6. </head>
  7. <body>
  8. {$header}
  9. <center>
  10. <table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" style="clear: both; border-bottom-width: 0;">
  11.  
  12. <td><button type="button">ID</button></td>
  13.  
  14. <td><button type="button">Czas</button></td>
  15.  
  16. <td><button type="button">Nick</button></td>
  17.  
  18. <td><button type="button">Tekst</button></td>
  19.  
  20. <?php
  21.  
  22. for ($i=0; $i <$ile_znalezionych; $i++)
  23.  
  24. {
  25.  
  26. $wiersz = $wynik->fetch_assoc();
  27.  
  28. $litery1 = array('š', 'ć', 'ę', 'ł', 'ń', 'œ', 'Ÿ', 'ż', 'serwer');
  29. $litery2 = array('ą', 'ć', 'ę', 'ł', 'ń', 'ś', 'ź', 'ż', 'super');
  30. str_replace($litery1, $litery2, $wiersz['text']);
  31.  
  32. echo '<tr>';
  33.  
  34. echo '<td><center><span style="color:white;">'.$wiersz['id'].'</td></span></center>';
  35.  
  36. echo '<td><center><span style="color:white;">'.$wiersz['czas'].'</td></span></center>';
  37.  
  38. echo '<td><center><span style="color:white;">'.$wiersz['nick'].'</td></span></center>';
  39.  
  40. echo '<td><span style="color:white;">'.$wiersz['text'].'</td></span>';
  41.  
  42. echo '</tr>';
  43.  
  44. }
  45.  
  46. ?>
  47. </table>
  48. </center>
  49. {$footer}
  50. </body>
  51. </html>


w czym popełniłem błąd? ohno-smiley.gif
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Nie łataj w ten sposób tylko rozwiąż problem. Widać wyraźnie że znaki są w unikodzie. Jak się łączysz z bazą, przez które rozszerzenie?


--------------------
Go to the top of the page
+Quote Post
rufi
post
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 3.06.2017

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


  1. <?php
  2.  
  3. function lacz_bd()
  4.  
  5. {
  6.  
  7. $db = new mysqli('localhost', 'xxx', 'xxxxxxx', 'chat');
  8.  
  9. if (! $db)
  10.  
  11. return false;
  12.  
  13. $db->autocommit(TRUE);
  14.  
  15. return $db;
  16.  
  17. }
  18.  
  19.  
  20.  
  21. $db = lacz_bd();
  22.  
  23. $db -> query ('SET NAMES utf8');
  24. $db -> query ('SET CHARACTER_SET utf8_unicode_ci');
  25. $zapytanie = "SELECT `id`, `czas`, `nick`, `text` FROM chat";
  26.  
  27.  
  28.  
  29. $wynik = $db->query($zapytanie);
  30.  
  31. $ile_znalezionych = $wynik->num_rows;
  32.  
  33.  
  34. ?>
  35. <?php
  36. define('IN_MYBB', 1);
  37. require "./global.php";
  38.  
  39. add_breadcrumb("Chat", "chat.php");
  40.  
  41. eval("\$chat = \"".$templates->get("chat")."\";");
  42. output_page($chat);
  43. ?>


tak wygląda podłączenie. już w samym phpmyadmin używając jakiejkolwiek metody są problemy z wyświetlaniem, kodowanie serwera w ansi, innej opcji nie mam
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Prawidłowo powinieneś przez http://php.net/manual/pl/mysqli.set-charset.php Ustaw odpowiednie kodowanie na stronie (header), w bazie prawidłowe collation dla kolumn i tabel.


--------------------
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 Aktualny czas: 19.08.2025 - 13:14