Code php chuyển đổi đầu số điện thoại Việt Nam

Để thực hiện cập nhật số điện thoại trên các hệ thống tôi phát triển theo lịch chuyển đổi đầu số tôi có phát triển thư viện hàm bằng ngôn ngữ php để thực hiện việc chuyển đổi này. Sau đây tôi xin được chia sẻ với các bạn. Đoạn code php bên dưới thực hiện chuyển đổi tất cả đầu số điện thoại cố định và di động hiện có tại Việt Nam.

1. Code

class Phonenumber
{
    //private $phonetype='CELL'; //CELL, HOME
    private $arr_Prefix=array('CELL'=>array(
                                            '016966'=>'03966',
                                            '0169'=>'039',
                                            '0168'=>'038',
                                            '0167'=>'037',
                                            '0166'=>'036',
                                            '0165'=>'035',
                                            '0164'=>'034',
                                            '0163'=>'033',
                                            '0162'=>'032',
                                            '0120'=>'070',
                                            '0121'=>'079',
                                            '0122'=>'077',
                                            '0126'=>'076',
                                            '0128'=>'078',
                                            '0123'=>'083',
                                            '0124'=>'084',
                                            '0125'=>'085',
                                            '0127'=>'081',
                                            '0129'=>'082',
                                            '01992'=>'059',
                                            '01993'=>'059',
                                            '01998'=>'059',
                                            '01999'=>'059',
                                            '0186'=>'056',
                                            '0188'=>'058'
                                           ),
                              'HOME'=>array(
                                            '076'=>'0296',
                                            '064'=>'0254',
                                            '0281'=>'0209',
                                            '0240'=>'0204',
                                            '0781'=>'0291',
                                            '0241'=>'0222',
                                            '075'=>'0275',
                                            '056'=>'0256',
                                            '0650'=>'0274',
                                            '0651'=>'0271',
                                            '062'=>'0252',
                                            '0780'=>'0290',
                                            '0710'=>'0292',
                                            '026'=>'0206',
                                            '0511'=>'0236',
                                            '0500'=>'0262',
                                            '0501'=>'0261',
                                            '0230'=>'0215',
                                            '061'=>'0251',
                                            '067'=>'0277',
                                            '059'=>'0269',
                                            '0351'=>'0226',
                                            '04'=>'024',
                                            '039'=>'0239',
                                            '0320'=>'0220',
                                            '031'=>'0225',
                                            '0711'=>'0293',
                                            '08'=>'028',
                                            '0321'=>'0221',
                                            '058'=>'0258',
                                            '077'=>'0297',
                                            '060'=>'0260',
                                            '0231'=>'0213',
                                            '063'=>'0263',
                                            '025'=>'0205',
                                            '020'=>'0214',
                                            '072'=>'0272',
                                            '0350'=>'0228',
                                            '038'=>'0238',
                                            '030'=>'0229',
                                            '068'=>'0259',
                                            '057'=>'0257',
                                            '052'=>'0232',
                                            '0510'=>'0235',
                                            '055'=>'0255',
                                            '033'=>'0203',
                                            '053'=>'0233',
                                            '079'=>'0299',
                                            '022'=>'0212',
                                            '066'=>'0276',
                                            '036'=>'0227',
                                            '0280'=>'0208',
                                            '037'=>'0237',
                                            '054'=>'0234',
                                            '073'=>'0273',
                                            '074'=>'0294',
                                            '027'=>'0207',
                                            '070'=>'0270',
                                            '029'=>'0216'
                                            )
                             );
                             
    function convert($phonenumber)
    {
        if(!empty($phonenumber))
        {
            //1. Xóa ký tự trắng
            $phonenumber=str_replace(' ','',$phonenumber);
            //2. Xóa các dấu chấm phân cách
            $phonenumber=str_replace('.','',$phonenumber);
			//3. Xóa các dấu gạch nối phân cách
            $phonenumber=str_replace('-','',$phonenumber);
            //4. Xóa dấu mở ngoặc đơn
            $phonenumber=str_replace('(','',$phonenumber);
            //5. Xóa dấu đóng ngoặc đơn
            $phonenumber=str_replace(')','',$phonenumber);
            //6. Xóa dấu +
            $phonenumber=str_replace('+','',$phonenumber);
			//7. Chuyển 84 đầu thành 0
			if(substr($phonenumber,0,2)=='84')
			{
				$phonenumber='0'.substr($phonenumber,2,strlen($phonenumber)-2);
			}
			$dathaythe=false;
            foreach($this->arr_Prefix['HOME'] as $key=>$value)
			{
				//$prefixlen=strlen($key);
				if(strpos($phonenumber,$key)===0)
				{
				    $prefix=$key;
                    $prefixlen=strlen($key);
                    $phone=substr($phonenumber,$prefixlen,strlen($phonenumber)-$prefixlen);
                    $prefix=str_replace($key,$value,$prefix);
                    $phonenumber=$prefix.$phone;
					//$phonenumber=str_replace($key,$value,$phonenumber);
					$dathaythe=true;
					break;
				}
			}
			
			
			
			if($dathaythe==false)
			{
				foreach($this->arr_Prefix['CELL'] as $key=>$value)
				{
					//$prefixlen=strlen($key);
					if(strpos($phonenumber,$key)===0)
					{
					    $prefix=$key;
                        $prefixlen=strlen($key);
                        $phone=substr($phonenumber,$prefixlen,strlen($phonenumber)-$prefixlen);
                        $prefix=str_replace($key,$value,$prefix);
                        $phonenumber=$prefix.$phone;
						//$phonenumber=str_replace($key,$value,$phonenumber);
						$dathaythe=true;
						break;
					}
				}
			}
			
            return $phonenumber;
        }
        else
        {
            return false;
        }
    }
}

2. Test

Sau đây là đoạn code test hàm chuyển đổi trên:

$converter=new Phonenumber();
$number='01673532789';
echo $number.'=>';
$number=$converter->convert($number);
echo $number.'</br>';

3. Demo

4. Link APIhttp://api.nosomovo.xyz/convert/vnphonenumber/01676699666

Hy vọng hữu ích với các bạn!

Nosomovo

Chia sẻ lên

3 bình luận trong “Code php chuyển đổi đầu số điện thoại Việt Nam

Trả lời