Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] eregi() a podkreślenie (_)
Forum PHP.pl > Forum > Przedszkole
Mich@ł
W swoim skrypcie do sprawdzania poprawności wpisanego adresu strony użyłem funkcji eregi() tylko jak widzę wkradł się pewien "bubel". Skrypt wygląda następująco:

  1. <?
  2. $adres = 'Abbcc333';
  3. if (eregi('^[a-zA-z0-9-]+$', $adres)) {
  4. echo "tekst";
  5. }
  6. ?>

Ustawiłem warunek, że ciąg może zawierać jedynie małe i duże litery, liczby i myślnik. Niestety jak widzę przez funkcje przechodzi również podkreślenie... i tu pojawia się pytanie. Jak je zablokować? Ew może polecicie mi jakąś inna funkcję ponieważ jak czytałem eregi() raczje nie jest już zalecana (od php 5.3.x).

mortus
W wyrażeniu regularnym wybierasz znaki od dużego A do małego z, dlatego przepuszcza Ci również _, które mieści się w tym zakresie znaków. Używaj funkcji z grupy preg_*().

Wyrażenie powinno wtedy wyglądać tak: #^[a-zA-Z0-9-]+$#.
Fifi209
Użyj preg_match bo eregi zostało wyrzucone z nowego php.

Cytat
#^[[:alnum:]\\-]$#i

O proszę ;]
Mich@ł
Dzięki za pomoc wink.gif Faktycznie problemem był zakres "A-z" ale i tak faktycznie może warto zastosować preg_match zamiast eregi smile.gif

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.