0

In PHP I have a list of country telephone codes. e.g: US 1, Egypt 20 ....
I need to check if a given string starts with 00[ANY NUMBER FROM THE LIST].
How can I achieve this and return the country code?

Eitan T
  • 32,660
  • 14
  • 72
  • 109
Michael Frey
  • 908
  • 2
  • 14
  • 35
  • You could do this with regular expressions: http://www.regular-expressions.info/. – Felix Kling May 28 '12 at 10:51
  • http://stackoverflow.com/questions/834303/php-startswith-and-endswith-functions – bos May 28 '12 at 10:53
  • Or - if the numbers are strings - with `substr`: [substring info](http://www.php.net/manual/en/function.substr.php) – Tikkes May 28 '12 at 10:53
  • Maybe the answer that was listed here: http://stackoverflow.com/questions/4979238/php-get-all-keys-from-a-array-that-start-with-a-certain-string – Sandeep Bansal May 28 '12 at 10:54

5 Answers5

6
$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
flowfree
  • 16,356
  • 12
  • 52
  • 76
  • 1
    You must check for `=== 0` instead of `== 0`. `strpos()` can return `FALSE` (string not found) and `FALSE == 0` is true!!! – Salman A May 28 '12 at 11:22
2

Referring to PHP - get all keys from a array that start with a certain string

foreach ($array as $key => $value) {
    if (substr($value, 0, 2) == "00") {
        echo "$key\n";
    }
}
Community
  • 1
  • 1
Sandeep Bansal
  • 6,280
  • 17
  • 84
  • 126
1

Use regular expressions:

$str ="0041";

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

Use the substr function:

$country_code = substr($string, 0, 2);
fanf
  • 110
  • 1
  • 7
-1

Use explode function to separate the string in arrays, and you can acess with $string.

j0k
  • 22,600
  • 28
  • 79
  • 90
Lucas Reis
  • 441
  • 2
  • 9