Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wykrywanie ".." w zmiennej
fil1995
post 4.05.2010, 14:05:48
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 9.03.2010

Ostrzeżenie: (0%)
-----


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.

Ten post edytował fil1995 4.05.2010, 14:07:26
Go to the top of the page
+Quote Post
Daniel Meger
post 4.05.2010, 14:11:44
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 30.04.2010
Skąd: PL

Ostrzeżenie: (0%)
-----


http://pl.php.net/manual/en/function.strpos.php
pierwszy przykład.
Go to the top of the page
+Quote Post
piotrooo89
post 4.05.2010, 14:20:05
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a ja jeszcze dorzucę że eregi są już zdeprecjonowane zaleca się używania preg_*.


--------------------
Go to the top of the page
+Quote Post
teka
post 5.05.2010, 10:59:15
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 2
Dołączył: 30.04.2010

Ostrzeżenie: (0%)
-----


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';





Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 07:34