Как получить код страны с мобильного телефона с помощью php
Я получаю номер мобильного телефона из базы данных в базе данных у меня более 1000 номеров мобильных телефонов, моя база данных выглядит так
mobilenumber
971525478965
919844005522
45712345678
я хочу просмотреть каждый номер в базе данных и найти countrycode
с мобильного телефона отобразить countrycode
и страна, использующая php
например вот так
countrycode 971 country UAE
countrycode 91 country India
countrycode 45 country Denmark
у любого есть какие-либо предложения, пожалуйста, покажите мне, как это сделать.
Я пытался так, но хочу проверить более одного мобильного номера из базы данных
<?php
$number = "971527139011";
$countrys = array(
'1' => 'us',
'2' => 'uk',
'3' => 'de',
'44' => 'fi',
'123' => 'no',
'971' =>'uae',
'91' =>'india',
'92' =>'pakistan'
);
$i = 4;
$country = "";
while ($i > 0) {
if (isset($countrys[substr($number, 0, $i)])) {
$country = $countrys[substr($number, 0, $i)];
break;
} else {
$i--;
}
}
echo $country;
?>
отредактированный
<?php
$dbHost = 'localhost'; // usually localhost
$dbUsername = 'root';
$dbPassword = '1234fedf';
$dbDatabase = 'smsmobile';
$db = mysql_connect($dbHost, $dbUsername, $dbPassword) or die ("Unable to connect to Database Server.");
mysql_select_db ($dbDatabase, $db) or die ("Could not select database.");
$sql = "SELECT destinationaddress FROM reporting";
//print $sql;
$queryRes1 = mysql_query($sql);
while($rows=mysql_fetch_assoc($queryRes1))
{
$destinationaddress[] = $rows['destinationaddress'];
}
$phones = $destinationaddress;
// get your list of country codes
$ccodes = array(
'1' => 'us',
'2' => 'uk',
'3' => 'de',
'44' => 'fi',
'123' => 'no',
'971' =>'uae',
'91' =>'india',
'92' =>'pakistan'
);
krsort( $ccodes );
foreach( $phones as $pn )
{
foreach( $ccodes as $key=>$value )
{
if ( substr( $pn, 0, strlen( $key ) ) == $key )
{
// match
$country[$pn] = $value;
break;
}
}
}
print_r( $country );
?>
1 ответ
Решение
Примерно так будет работать:
// get your list of numbers from DB
$phones = array( '971527139011', '171527139011' );
// get your list of country codes
$ccodes = array(
'1' => 'us',
'2' => 'uk',
'3' => 'de',
'44' => 'fi',
'123' => 'no',
'971' =>'uae',
'91' =>'india',
'92' =>'pakistan'
);
krsort( $ccodes );
foreach( $phones as $pn )
{
foreach( $ccodes as $key=>$value )
{
if ( substr( $pn, 0, strlen( $key ) ) == $key )
{
// match
$country[$pn] = $value;
break;
}
}
}
print_r( $country );
редактировать
Данные довольно грязные, я предлагаю вам хранить их в разных столбцах, но, если структура данных всегда одна и та же, это извлечет из нее страну / код:
$data = array( 'country : Denmark prefix:45', 'country : Pakistan prefix:92' );
foreach ( $data as $string )
{
$_a = explode( ':', $string );
$_b = explode( ' ', $_a[1] );
$ccode[$_a[2]] = $_b[1];
}
print_r( $ccode );