2012-10-24 3 views
5

mein Code:

<?php 
    $phone = 18311111111; 
    if(ereg("^\d{11}$",$phone)){ 
     echo "true"; 
    } else { 
     echo "false"; 
    } 
?> 

i falsch bekommen? Warum?

+4

Warnung: 'ereg' wurde ab PHP 5.3.0 dekomprimiert. Von dieser Funktion wird dringend abgeraten. – OmnipotentEntity

Antwort

4

Da ereg\d nicht unterstützt, müssen Sie stattdessen [0-9] verwenden.

Und ereg ist veraltet, verwenden Sie stattdessen preg_match, dann könnten Sie \d verwenden.

if(preg_match("/^\d{11}$/",$phone)){ 
    echo "true"; 
} else { 
    echo "false"; 
} 
+0

Woops, Tippfehler: derepcated => veraltet –

+0

@AlexLunix Danke, behoben :) – xdazz

0

Für was es wert ist, kann man nicht ereg (veraltet) noch preg_match für einen solchen einfachen Test verwendet werden soll; Sie können ctype_digit() verwenden:

if (ctype_digit($phone)) { 
    // $phone consists of only digits 
} else { 
    // non-digit characters were found in $phone 
}