Verificarea unei variabile pentru un număr php. Validarea parametrilor numerici în PHP

De exemplu, luați această adresă: http://example.com/price.php?product=859844&page=99.

Scriptul afișează o listă de prețuri în magazine pentru produsul produs, parametrul opțional de pagină specifică numărul paginii. Dacă pagina nu este specificată și adresa URL arată ca http://example.com/price.php?product=859844 , atunci vom afișa prima pagină.

Înainte de PHP 5.2.0, problema putea fi rezolvată în acest mod simplu.

// Funcție pentru obținerea unui parametru care este un număr natural // $arr = matrice de parametri ($GET sau $POST), $nume = numele parametrului, // Funcția returnează valoarea parametrului sau $default dacă parametrul lipsește sau funcția incorectă get_param_nat($ arr, $name, $default=null) ( if (!isset($arr[$name])) return $default; // Verificați într-un mod foarte simplu, convertiți parametru la un număr, apoi înapoi la un șir // Dacă totul este bine, atunci șirul rezultat trebuie să se potrivească cu valoarea inițială a parametrului $val = $arr[$nume] $intval = intval($val); Verificăm dacă numărul pe care îl avem este mai mare decât zero dacă (strval($intval) != = $val || $intval< 1) return $default; return $intval; } // Проверяем параметр product if (($product = get_param_nat($_GET, "product")) === null) die("Product not found"); // Получаем номер страницы $page = get_param_nat($_GET, "page", 1);

Începând cu versiunea 5.2.0, în PHP a apărut un grup de funcții de filtrare: filter_var, filter_input, filter_var_array și altele. Funcțiile pot verifica variabile pentru numere întregi, numere în virgulă mobilă, e-mail, adrese IP, url etc. și, de asemenea, șterge șiruri în funcție de parametrii specificați.

Să rescriem codul folosind funcția filter_input.

Funcția get_param_nat($type, $name, $default=null) ( $val = filter_input($type, FILTER_VALIDATE_INT, array("min_range" => 1, "max_range" => PHP_INT_MAX)); // filter_input returnează false dacă se filtrează failed, sau null dacă variabila este nedefinită dacă ($val === null || $val === false) return $default return $val ) // Verificați parametrul produs dacă (($product = get_param_nat(INPUT_GET) , "produs")) === null) die ("Produsul nu a fost găsit"); // Obține numărul paginii $page = get_param_nat(INPUT_GET, "page", 1);

O mică testare a arătat că viteza de funcționare a celor două variante ale funcției get_param_nat este aproape aceeași, iar în absența unui parametru, de exemplu, pagina nu este specificată, prima variantă va funcționa și mai repede.

Deci, depinde de tine să decizi ce să folosești. Eu personal folosesc prima funcție, este cumva mai aproape și mai clar de mine.

Ei bine, o mică digresiune lirică la final. Pentru a evita duplicarea paginii pentru motoarele de căutare, de exemplu, fără pagină și cu page=1, recomand să specificați url-ul canonic în secțiunea head a paginii. Va arata cam asa:

...

În consecință, dacă variabila este un număr întreg, efectuăm acțiunea de care avem nevoie și invers.

Verificarea dacă o variabilă este un număr întreg în JavaScript

În JavaScript, lucrurile sunt puțin diferite și aici trebuie să scriem propria noastră funcție mică:

Funcția number_scan(num) ( return (num ^ 0) === num; )

și folosește-l pentru testare:

function number_scan(num) ( return (num ^ 0) === num; ) var number = "1,3";

if(number_scan(number)) ( // Acțiune dacă numărul este un număr întreg) else ( // Acțiune dacă numărul este fracționar sau variabila nu este deloc un număr)




Cum să găsești o persoană pe VKontakte după numărul de telefon?