2017-11-28 1 views
1

Ich muss angeben, ob der Typ der Zeichenfolge mit 3 Ziffern, 3 Buchstaben oder einer Kombination beginnt. Die Zeichenfolge, die der Benutzer eingibt.PHP Zeichenfolge Charakterisierung

Der Code ich habe funktioniert für Buchstaben und Zahlen, aber nicht für die Kombinationen. Was soll ich machen?

$type = substr($value, 0, 3); 
if(is_numeric($type)){ 
    echo 'starts with 3 digits'; 
}elseif(is_string($type)){ 
    echo 'starts with 3 alphabetic characters'; 
}else{ 
    echo 'undefined type?'; 
} 
+0

definieren, welche Art von Kombination, wenn Sie irgendwelche dann meinen, ist es sicherlich eine Zeichenfolge, die mit 'a-z0-9' beginnt? – Martin

+0

Ihre 'IF' Anweisung' is_string' ist falsch. 'X = #' ist eine Zeichenkette aus drei Zeichen, aber nicht aus drei alphabetischen Zeichen. – Martin

+0

Ich meine alles, was nicht mit 3 Buchstaben oder Zahlen beginnt. Für ex a2c. –

Antwort

3

Ihre Funktionsaufrufe können unbeabsichtigte Ergebnisse liefern. Ich empfehle ctype_ Anrufe für Zuverlässigkeit:

$type = substr($value, 0, 3); 
if(ctype_digit($type)){ 
    echo 'starts with 3 digits'; 
}elseif(ctype_alpha($type)){ 
    echo 'starts with 3 alphabetic characters'; 
}else{ 
    echo 'undefined type?'; 
} 

P. S. Wenn Sie überprüfen möchten, ob der Teilstring eine Kombination aus Buchstaben und Zahlen ist, können Sie ctype_alnum().