Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zamiania ogonków przez str_replace
Forum PHP.pl > Forum > Przedszkole
Mackos
Witajcie!
Mam takie drobne pytanie, ponieważ sam nie mogę tego wydumać.
Mam formularz, i chciałbym wszystkie wprowadzone w nim dane sprawdzić czy wprowadzone dane zawierają literki z ogonkami i jeśli tak
to zamienić je na bez ogonkowe odpowiedniki smile.gif czyli np. "ó" -> "o" itd.
blade-mrn
Najprościej chyba za pomocą pętli i strlen przejść przez te ciągi znaków i sprawdzić wszystkie pojedynczo i ewentualnie od razu wymienić niechciane "ogonki".
thek
Napisz sobie funkcję konwertującą znaki i używaj na wybranych polach formularza. Tu masz Kohanowską funkcję transliterate_to_ascii, która to robi na duże lub małe bądź oba warianty winksmiley.jpg
  1. function _transliterate_to_ascii($str, $case = 0)
  2. {
  3. static $UTF8_LOWER_ACCENTS = NULL;
  4. static $UTF8_UPPER_ACCENTS = NULL;
  5.  
  6. if ($case <= 0)
  7. {
  8. if ($UTF8_LOWER_ACCENTS === NULL)
  9. {
  10. $UTF8_LOWER_ACCENTS = array(
  11. '?' => 'a', 'ô' => 'o', 'ď' => 'd', '?' => 'f', 'ë' => 'e', 'š' => 's', '?' => 'o',
  12. 'ß' => 'ss', 'ă' => 'a', 'ř' => 'r', '?' => 't', 'ň' => 'n', '?' => 'a', '?' => 'k',
  13. '?' => 's', '?' => 'y', '?' => 'n', 'ĺ' => 'l', '?' => 'h', '?' => 'p', 'ó' => 'o',
  14. 'ú' => 'u', 'ě' => 'e', 'é' => 'e', 'ç' => 'c', '?' => 'w', '?' => 'c', '?' => 'o',
  15. '?' => 's', '?' => 'o', '?' => 'g', '?' => 't', '?' => 's', '?' => 'e', '?' => 'c',
  16. 'ś' => 's', 'î' => 'i', 'ű' => 'u', 'ć' => 'c', 'ę' => 'e', '?' => 'w', '?' => 't',
  17. '?' => 'u', 'č' => 'c', 'ö' => 'o', '?' => 'e', '?' => 'y', 'ą' => 'a', 'ł' => 'l',
  18. '?' => 'u', 'ů' => 'u', 'ş' => 's', '?' => 'g', '?' => 'l', '?' => 'f', 'ž' => 'z',
  19. '?' => 'w', '?' => 'b', '?' => 'a', '?' => 'i', '?' => 'i', '?' => 'd', 'ť' => 't',
  20. '?' => 'r', 'ä' => 'a', 'í' => 'i', 'ŕ' => 'r', '?' => 'e', 'ü' => 'u', '?' => 'o',
  21. '?' => 'e', '?' => 'n', 'ń' => 'n', '?' => 'h', '?' => 'g', 'đ' => 'd', '?' => 'j',
  22. '?' => 'y', '?' => 'u', '?' => 'u', '?' => 'u', 'ţ' => 't', 'ý' => 'y', 'ő' => 'o',
  23. 'â' => 'a', 'ľ' => 'l', '?' => 'w', 'ż' => 'z', '?' => 'i', '?' => 'a', '?' => 'g',
  24. '?' => 'm', '?' => 'o', '?' => 'i', '?' => 'u', '?' => 'i', 'ź' => 'z', 'á' => 'a',
  25. '?' => 'u', '?' => 'th', '?' => 'dh', '?' => 'ae', '?' => 'u', '?' => 'e',
  26. );
  27. }
  28.  
  29. $str = str_replace(
  30. array_keys($UTF8_LOWER_ACCENTS),
  31. array_values($UTF8_LOWER_ACCENTS),
  32. $str
  33. );
  34. }
  35.  
  36. if ($case >= 0)
  37. {
  38. if ($UTF8_UPPER_ACCENTS === NULL)
  39. {
  40. $UTF8_UPPER_ACCENTS = array(
  41. '?' => 'A', 'Ô' => 'O', 'Ď' => 'D', '?' => 'F', 'Ë' => 'E', 'Š' => 'S', '?' => 'O',
  42. 'Ă' => 'A', 'Ř' => 'R', '?' => 'T', 'Ň' => 'N', '?' => 'A', '?' => 'K', '?' => 'E',
  43. '?' => 'S', '?' => 'Y', '?' => 'N', 'Ĺ' => 'L', '?' => 'H', '?' => 'P', 'Ó' => 'O',
  44. 'Ú' => 'U', 'Ě' => 'E', 'É' => 'E', 'Ç' => 'C', '?' => 'W', '?' => 'C', '?' => 'O',
  45. '?' => 'S', '?' => 'O', '?' => 'G', '?' => 'T', '?' => 'S', '?' => 'E', '?' => 'C',
  46. 'Ś' => 'S', 'Î' => 'I', 'Ű' => 'U', 'Ć' => 'C', 'Ę' => 'E', '?' => 'W', '?' => 'T',
  47. '?' => 'U', 'Č' => 'C', 'Ö' => 'O', '?' => 'E', '?' => 'Y', 'Ą' => 'A', 'Ł' => 'L',
  48. '?' => 'U', 'Ů' => 'U', 'Ş' => 'S', '?' => 'G', '?' => 'L', '?' => 'F', 'Ž' => 'Z',
  49. '?' => 'W', '?' => 'B', '?' => 'A', '?' => 'I', '?' => 'I', '?' => 'D', 'Ť' => 'T',
  50. '?' => 'R', 'Ä' => 'A', 'Í' => 'I', 'Ŕ' => 'R', '?' => 'E', 'Ü' => 'U', '?' => 'O',
  51. '?' => 'E', '?' => 'N', 'Ń' => 'N', '?' => 'H', '?' => 'G', 'Đ' => 'D', '?' => 'J',
  52. '?' => 'Y', '?' => 'U', '?' => 'U', '?' => 'U', 'Ţ' => 'T', 'Ý' => 'Y', 'Ő' => 'O',
  53. 'Â' => 'A', 'Ľ' => 'L', '?' => 'W', 'Ż' => 'Z', '?' => 'I', '?' => 'A', '?' => 'G',
  54. '?' => 'M', '?' => 'O', '?' => 'I', '?' => 'U', '?' => 'I', 'Ź' => 'Z', 'Á' => 'A',
  55. '?' => 'U', '?' => 'Th', '?' => 'Dh', '?' => 'Ae',
  56. );
  57. }
  58.  
  59. $str = str_replace(
  60. array_keys($UTF8_UPPER_ACCENTS),
  61. array_values($UTF8_UPPER_ACCENTS),
  62. $str
  63. );
  64. }
  65.  
  66. return $str;
  67. }
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.