Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problemy z str_replace
Forum PHP.pl > Forum > Przedszkole
dark_root
Mam taki kod
Kod
$wynik = str_replace("'", "", $lech);
Jak widać chce usunąć ze zmiennej lech znaki ' jednak nie działa to gdyż ' gryzie się z ". Jak to zrobić żeby działało?
hiszpanespaniol
znak ucieczki dobra rzecz. poszukaj w google.
megawebmaster
Nie rozumiem - sprawdziłem ten kod u siebie i jest w porządku. Podaj może zawartość $lech - coś postaram się pomóc winksmiley.jpg
erix
Zobacz, który rodzaj cudzysłowów parsuje zmienne wewnątrz, a który nie. ;P
piotrooo89
  1. <?php
  2. str_replace(''', '', $lech);
  3. ?>


pamiętaj o tym.
mike
~piotrooo89 a po co tak kombinować skoro kod:
  1. <?php
  2.  
  3. $wynik = str_replace("'", "", $lech);
  4.  
  5. ?>
jest OK?
piotrooo89
można i tak. ale jakoś tak jestem do tego mojego przyzwyczajony. smile.gif
pyro
Cytat(hiszpanespaniol @ 17.11.2008, 20:10:27 ) *
znak ucieczki dobra rzecz. poszukaj w google.


srry, ale jakiej ucieczki?

// edit

jakby kto jeszcze mial problemy ze zrozumieniem aluzji to patrz post nizej.
mike
Cytat(pyro @ 17.11.2008, 21:30:21 ) *
srry, ale jakiej ucieczki?
Zapraszszam do podstaw: string
Cytat
To specify a literal single quote, escape it with a backslash (\).

Stosowanie znaku "/" nazywa się ucieczką od cudzysłowów. Zarówno w polskiej nomenklaturze jak i angielskiej.
pyro
Cytat(mike @ 17.11.2008, 21:34:41 ) *
Zapraszszam do podstaw: string
Stosowanie znaku "/" nazywa się ucieczką od cudzysłowów. Zarówno w polskiej nomenklaturze jak i angielskiej.


...no comments

Myślałem, że każdy głupi się domyśli, że chodzi mi o to, że tam poprostu nie ma potrzeby używania znaków ucieczki.

Poza tym mike nie "/" (forwardslash) tylko "\" (backslash)
megawebmaster
Ale chyba autorowi nie zależy na rozwiązaniu - coś cicho siedzi. Escapowanie cudzysłowów ważne jest przecież tylko przy przypisywaniu danych do zmiennej ($lech = 'cos tam \'w cudzyslowie\' zawarte';), a potem wyrzucenie cudzysłowów działa tamtym skryptem. Co prawda szybciej działa z apostrofami niż z cudzysłowami, ale to już kwestia szybkości i tego co kto lubi winksmiley.jpg
dark_root
Nie było mnie kawałek, ale na rozwiązaniu mi zależy:P Na szczęście kod piotrooo89 działa bez zarzutu:p nie licząc sytuacji gdy zmienna lech ma wartość '0 wtedy wyskakuje mi ? ale ten problem poruszyłem w innym temacie.
P.S.
Piotrooo89 zmiana kodowaniu niestety nie pomogła:p
piotrooo89
nie bardzo rozumiem o jakiej sytuacji mówisz.
mając tak:
  1. <?php
  2. $lech="'0";
  3.  
  4. str_replace("'", "", $lech);
  5. ?>


wszystko śmiga w najlepszym porządeczku.
dark_root
Mi to nie działa w tym kodzie
  1. <?php
  2. $ruben=$_GET['l'];
  3. $tekst =htmlspecialchars($ruben, ENT_QUOTES);
  4. $temp = explode('=',$tekst);
  5. $zdanie = $temp[2];
  6. $lech = substr($zdanie, 0, strpos($zdanie, ";xse"));
  7. $lala = str_replace("'", "", $lech);
  8. $wynik =str_replace("'", "", $lala);
  9. $a=stripslashes($wynik);
  10. $rub=$a;
  11. echo $a;
  12. ?>

Jeśli zmienna początkowa GET['l'] ma wartość np.saasas=asaaa='09890';xse to zmienna wynik wynosi '09890' i coś się dzieje nie tak bo końcowa zmienna a w tym przypadku wynosi 9890 a jakbym do tego kodu kodał
Kod
<input type=text value <? $a; ?>/>
wyświetliłoby się w polu tekstowym ?9890. Nie wiem czemu tak jest, ale u mnie tak wychodzi.
piotrooo89
z może zrob tak jak trzeba:

  1. <input type="text" value="<?php echo $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.