Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: str_replace wykonuje tylko jedno zalozenie?
Forum PHP.pl > Forum > PHP
spit
Czesc,
Chce zamieniac zmienne z adresu na poprawnie wyswietlane wyrazy na stronie. W adresie nie uzywam kropek, spacji ani niczego podobnego, totez podaje je w formacie "Jakis_Tekst". I napisalem sobie krotka regulke str_replace
  1. <?php
  2. $bandph = str_replace("_", " ", $band);
  3. $bandph = str_replace("Fantomas", "Fantômas", $band);
  4. $bandph = str_replace("Bjork", "Björk", $band);
  5. $bandph = str_replace("Kaada Patton", "Kaada / Patton", $band);
  6. $bandph = str_replace("Mr_Bungle", "Mr. Bungle", $band);
  7. ?>
Zapisalem ja do pliku inc/replace.php. Na podstronie robie tak
  1. <?php
  2. echo '<h2><a href="?dzial=dyskografia&wyk='.$band.'">Dyskografia</a> › <a href="?dzial=dyskografia&wyk='.$band.'">'.$bandph.'</a></h2>';
  3. ?>
Ale tu zachowanie jest dziwne. Dlaczego? Otoz, gdy w adresie jest wyk=Mr_Bungle, tytul jest zamieniany na Mr. Bungle. Ale juz gdy dam wyk=Kaada_Patton, nawet go nie rusza. Co to moze byc? Oczywiscie zmienne z adresu to:
  1. <?php
  2. $band = $_GET['wyk'];
  3. $album = $_GET['album'];
  4. ?>
. Chcialem dac $bandph = $_GET['wyk']; ale wtedy zadno z zalozen nie dzialo.
kossa
tu nie masz znaku: _

Cytat
str_replace("Kaada Patton", "Kaada / Patton", $band);


a w adresie podajesz:
Cytat
Kaada_Patton


Łukasz
spit
Nawet gdy to zmienie, efekt wciaz jest taki sam (a wlasciwie brak efektu).
kossa
  1. <?php
  2. $band="Fantomas";
  3.  
  4. $band = str_replace("_", " ", $band);
  5. $band = str_replace("Fantomas", "Fantômas", $band);
  6. $band = str_replace("Bjork", "Björk", $band);
  7. $band = str_replace("Kaada Patton", "Kaada / Patton", $band);
  8. $band = str_replace("Mr_Bungle", "Mr. Bungle", $band);
  9.  
  10. echo $band;
  11. ?>


tak działa smile.gif

Łukasz

edit
na dodatek skoro te "tłumaczenia" piszesz z ręki to możesz użyć instrukcji if
spit
"tak działa" - Zaiste, dzieki wielkie.
"na dodatek skoro te "tłumaczenia" piszesz z ręki to możesz użyć instrukcji if" mianowicie jak mialoby to wygladac?
kossa
  1. <?php
  2. function Tlumacz($str)
  3. {
  4. if ($str=="Fantomas")
  5. $w="Fantômas";
  6. else if ($str=="Mr_Bungle")
  7. $w="Mr. Bungle";
  8. else
  9. $w="";
  10. //itd.
  11. return $w;
  12. };
  13.  
  14. echo Tlumacz($_GET["wyk"]);
  15. ?>


Łukasz
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.