2012-05-28 151 views
0

開頭在PHP中,我有一個國家電話代碼列表。例如:美國1,埃及20 ....
我需要檢查給定的字符串是否以00[ANY NUMBER FROM THE LIST]開頭。
我該如何做到這一點,並返回國家代碼?檢查字符串是否以

+0

你可以用正則表達式做到這一點:HTTP:/ /www.regular-expressio ns.info/。 –

+0

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

+0

或者 - 如果數字是字符串 - 用'substr':[substring info](http://www.php.net) /manual/en/function.substr.php) – Tikkes

回答

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

您必須檢查「=== 0」而不是「== 0」。 'strpos()'可以返回'FALSE'(字符串未找到)和'FALSE == 0'是真的! –

+0

@SalmanA:你說得對。謝謝。 – flowfree

-1

使用explode function來分隔數組中的字符串,並且您可以使用$string進行訪問。

0

使用substr功能:

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

'$ country_code'將包含前兩個字符:'00'。 – flowfree

1

使用正則表達式:

$str ="0041"; 

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

它會回顯整個字符串。 – flowfree

+0

好吧,只是忘了添加substr。現在它可以工作;) – nullpointr

+0

它會迴應前兩個字符:'00'。 – flowfree