2012-05-28 6 views
0

En PHP, j'ai une liste de codes téléphoniques de pays. Par exemple: US 1, Egypt 20 ....
Je dois vérifier si une chaîne donnée commence par 00[ANY NUMBER FROM THE LIST].
Comment puis-je y parvenir et renvoyer le code du pays?Vérifiez si la chaîne commence par

+0

Vous pouvez le faire avec des expressions régulières: http://www.regular-expressio ns.info/. –

+0

http://stackoverflow.com/questions/834303/php-startswith-and-endswith-functions – bos

+0

Ou - si les nombres sont des chaînes - avec 'substr': [substring info] (http://www.php.net /manual/en/function.substr.php) – Tikkes

Répondre

5
$codes = array(1 => 'US', 20 => 'Egypt'); 
$phone = '002087458454'; 

foreach ($codes as $code => $country) { 
    if (strpos($phone, "00$code") === 0) 
    break; 
} 

echo $code; // 20 
echo $country; // Egypt 
+1

Vous devez vérifier '=== 0' au lieu de' == 0'. 'strpos()' peut retourner 'FALSE' (chaîne non trouvée) et' FALSE == 0' est vrai !!! –

+0

@SalmanA: Vous avez raison. Merci. – flowfree

-1

Utilisez explode function pour séparer la chaîne dans les tableaux et vous pouvez accéder à $string.

0

Utilisez la fonction substr:

$country_code = substr($string, 0, 2); 
+0

'$ country_code' contiendra les 2 premiers caractères:' 00'. – flowfree

1

Utilisez des expressions régulières:

$str ="0041"; 

if(preg_match('#00[0-9]+#', $str, $array)){ 
    echo substr($array[0], 2); 
} 
+0

Il fera écho à toute la chaîne. – flowfree

+0

ok sry, juste oublié d'ajouter substr. maintenant cela fonctionne;) – nullpointr

+0

Il fera écho les deux premiers caractères maintenant: '00'. – flowfree

Questions connexes