Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z str_replace
Forum PHP.pl > Forum > Przedszkole
lukas22333
Witam, mógłby mi ktoś pomóc z tym kodem ?:
  1. $name=$_POST["name"];
  2.  
  3. $arrayfrom = array("ą","ę","ć","ś","ł","ń","ó","ż","ź","Ą","Ę","Ć","Ś","Ł","Ń","Ó","Ż","Ź");
  4. $arrayto = array("a","e","c","s","l","n","o","z","z","A","E","C","S","L","N","O","Z","Z");
  5.  
  6. echo str_replace($arrayfrom, $arrayto, $name);


W ogóle nie podmienia. Jak daje dowolną zawartość $name w " " to jest ok, tylko jak zrobić żeby treścią z $_POST["name"] działało ?


Pozdrawiam
flashdev
Upewnij sie czy masz wszędzie to same kodowanie.

Spróbój wykonać to:

  1. echo str_replace($arrayfrom, $arrayto, $name);


Jak pojawią sie krzaki to na pewno jest źle.
lukas22333
Nie chodzi o kodowanie. Np wpiszę Ą to wyświetli mi się Ą zamiast A - w ogóle nie podmienia.
Daiquiri
U mnie działa w porządku. Być może znaki wpisane w tablicę mają inne kodowanie niż znaki które wysyłasz przez zmienną. Sprawdź czy zamienia Ci zwykłe litery np. a na b... wtedy stanie się jasność (mam nadzieję).

//edit $_POST['name'] ?
ucho
Kod który napisałeś jest poprawny
  1. echo str_replace($arrayfrom, $arrayto, 'żółć');

zwraca "zolc". Tak jak flashdev pisze masz problem z kodowaniem - np. polskie znaki w pliku php masz w iso-8859-2 a kodowanie na stronie utf8
lukas22333
Kodowanie jest ok - sprawdzałem jeszcze gżegżółką. Oto cały kod:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. </head>
  6.  
  7. <body>
  8. <div id="top">
  9. </div>
  10.  
  11. <div id="txt">
  12. <?
  13. <form action="" method="POST">
  14. <p><input type="text" name="name" size="50" /></p>
  15. <p><input type="submit" value="Zmień" /></p>';
  16.  
  17.  
  18. $name=$_POST["name"];
  19.  
  20. $arrayfrom = array("a","e","c","s","l","n","?","z","z","A","E","C","S","L","N","?","Z","Z");
  21. $arrayto = array("a","e","c","s","l","n","o","z","z","A","E","C","S","L","N","O","Z","Z");
  22.  
  23. echo str_replace($arrayfrom, $arrayto, $name);
  24.  
  25.  
  26.  
  27.  
  28. ?>
  29. </div>
  30. </body>
  31. </html>
Daiquiri
Po raz 100 sprawdź kodowanie! Skopiuj zawartość całego skryptu do nowego pliku z uprzednio ustawionym kodowaniem. Zadziała.
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.