Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] str_replace or preg_replace
Forum PHP.pl > Forum > Przedszkole
Hectic
Mam problem z tymi funkcjami:

  1. <?php
  2. /********************************************/
  3. $duze_z = array('A', 'Ą', 'B', 'C', 'Ć', 'D', 'E', 'Ę', 'F', 'G', 
  4.  'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ń', 'O', 'Ó', 
  5.  'P', 'Q', 'R', 'S', 'Ś', 'T', 'U', 'V', 'W', 'X', 
  6.  'Y', 'Ż', 'Ź', 'Z'); 
  7. /********************************************/
  8. $male_z = array('a', 'ą', 'b', 'c', 'ć', 'd', 'e', 'ę', 'f', 'g', 
  9.  'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ń', 'o', 'ó', 
  10.  'p', 'q', 'r', 's', 'ś', 't', 'u', 'v', 'w', 'x',
  11.  'y', 'ż', 'ź', 'z');
  12. /********************************************/
  13.  
  14. $string = 'MaaaaMusia';
  15.  
  16. /* tutaj mam pętle for */
  17.  
  18. if($string[$x] === $duze_z[$y])
  19. {
  20. echo $duze_z[$y].' ==> '.$male_z[$y].'<br>';
  21.  
  22. $string_ok = preg_replace('%$duze_z[$y]%', '%$male_z[$y]%', $string);
  23. }
  24.  
  25. echo $string_ok;
  26. ?>

Otrzymuje wynik:
Cytat
M ==> m
M ==> m

MaaaaMusia

Z tego wynika że wszystko jest ok, ale funkcja nie zamienia liter :/ Co z tym zrobić ?
mike
  1. <?php
  2.  
  3. $string = 'MaaaaMusia';
  4.  
  5. /* tutaj mam pętle for */
  6.  
  7. if($string[$x] === $duze_z[$y])
  8. {
  9. echo $duze_z[$y].' ==> '.$male_z[$y].'<br>';
  10.  
  11. $string = preg_replace('%$duze_z[$y]%', '%$male_z[$y]%', $string);
  12. }
  13.  
  14. echo $string;
  15.  
  16. ?>


A co w ogóle chcesz osiągnąć?
Hectic
Chcem napisać funkcję zmieniającą duże litery na małe.
mike
1. chcem => chcę
2. A co, ta źle dziala: strtolower() ?
Hectic
Dobrze, ale ona mi nie zamieni polskich liter na odpowiednie cyferki...
mike
Cytat(Hectic @ 3.02.2007, 13:07:00 ) *
Dobrze, ale ona mi nie zamieni polskich liter na odpowiednie cyferki...

No to czemu nie skorzystasz z str_replace() tak jak manual przykazał?
  1. <?php
  2.  
  3. $arrRemove = array('Ą', 'Ć', 'Ę');
  4. $arrInsert = array('ą', 'ć', 'ę');
  5.  
  6. echo str_replace($arrRemove, $arrInsert, 'ĄĆĘ');
  7.  
  8. ?>
Hectic
1. Czemu => Dlaczego (nie ma w słowniku j. polskiego takiego słowa).
2. Zrobiłem jak w manualu tylko zmieniłem to trochę. Już sobie poradziłem, nie potrzebne były znaki '% %'.
3. Dziękuje za pomoc snitch.gif .



---
PWN :: Słownik ortograficzny języka polskiego :: czemu
Zaktualizuj sobie słownik tongue.gif
~mike_mech
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.