Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]str_replace
Forum PHP.pl > Forum > Przedszkole
rufi
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
viking
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?
rufi
  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
viking
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.
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.