PHP 資料隱碼

    function substr_cut( $name ='', $phone = '', $address = '' , $email = ''){
        /*
         *  個資隱碼
         *  $phone 保留前四碼及最後一碼,其他內容隱碼 ex: 0911xxxxx1
         *  $address 保留最後五碼,其他內容隱碼
         *  $email '@'前三碼及後三碼隱碼 ex : test123@gmail.com  -> testxxx@xxxl.com
         *  $name 第一個字及最後一個字隱碼
         */
        
        if ( !empty( $name ) ){
            $strlen = mb_strlen( $name );
            if( $strlen <= 2 ){
                $name = str_repeat('*',$strlen);
            }else{
                $name = str_repeat('*',1).mb_substr( $name, 1, ($strlen-2), 'utf-8').str_repeat('*',1);
            }
            return $name;
        }
        
        if ( !empty( $phone ) ){
            $strlen = mb_strlen( $phone );
            $first = mb_substr( $phone, 0, 4, 'utf-8');
            $last = mb_substr( $phone, -1, 1, 'utf-8');
            $phone = $first . str_repeat('*',5) . $last ;
            return $phone;
        }
        
        if ( !empty( $address ) ){
            $strlen = mb_strlen( $address );
            if( $strlen > 5){
                $last = mb_substr( $address, -5, 5, 'utf-8');
                $address = str_repeat('*',( $strlen - 5 )) . $last ;
                return $address;
            }          
            return $address;
        }
        
        if ( !empty( $email ) ){
            $email = preg_split('/[@]/', $email) ;
            $strlen_first = mb_strlen( $email[0] );
            $strlen_last = mb_strlen( $email[1] );
            $last = mb_substr( $email[1], 3, ($strlen_last-3), 'utf-8');
                        
            if( $strlen_first <= 3 ){
                $email = str_repeat('*',$strlen_first).'@'.$last;
            }else{
                $first = mb_substr( $email[0], 0, ($strlen_first-3), 'utf-8');
                $email = $first.str_repeat('*',3).'@'.str_repeat('*',3).$last;
            
            }
            return $email;
        }

    }

留言