Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wykrywanie ".." w zmiennej
Forum PHP.pl > Forum > Przedszkole
fil1995
Jak w temacie. Chce wykryc czy w ciagu znakow wystepuja dwie kropki ".." i jakos mi nie zabardzo wychodzi to co trzeba. Jak dopisze do kropek jakis znak to juz nie wykrywa mi kropek. Probowalem z tym:

  1.  
  2. $string = "..";
  3. if (eregi("../jsdkf", $string)) echo "'$string' wystepuje";
  4. else echo "nie wystepuje";
  5.  
  6. echo "<br>";
  7. $newstring = '..';
  8. if (strpos($newstring, '..costam/asfiashf', 1)) echo "wystepuje"; else echo "nie wystepuje";
  9.  



Pozdrawiam.
Daniel Meger
http://pl.php.net/manual/en/function.strpos.php
pierwszy przykład.
piotrooo89
a ja jeszcze dorzucę że eregi są już zdeprecjonowane zaleca się używania preg_*.
teka
1. Dla funkcji strpos:
Trzeba użyć operatora identyczności (===), bo znaleziony string może być także na pozycji 0

  1. $string = '..';
  2. $tekst = '..costam/asfiashf';
  3. echo '".."';
  4. if(strpos($tekst, $string) === false) echo ' NIE';
  5. echo ' występuje';


2. Dla wyrażeń regularnych
Kropka (".") to klasa predefiniowana, symbolizuje ona dowolny znak (za wyjątkiem przełamania linii), dlatego aby odszukać ją w tekście trzeba poprzedzić ją "\"

Tak jak pisał kolega piotrooo89:
Cytat
eregi są już zdeprecjonowane zaleca się używania preg_*.


dlatego polecam użycie funkcji preg_match

  1. $string = '([\.]{2})'; // oznacza 2 wystąpienia znaku "."
  2. $tekst = '..costam/asfiashf';
  3.  
  4. echo '".."';
  5. if(!preg_match($string, $tekst)) echo ' NIE';
  6. echo ' występuje';





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.