亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP中將一個字符串部分字符用星號*替代隱藏的實現代碼

 更新時間:2019年09月08日 13:18:00   作者:Zhihua_W  
這篇文章主要介紹了PHP中將一個字符串部分字符用星號*替代隱藏的實現代碼,有時候我們需要將部分內容隱藏那么就可能需要下面的代碼了,需要的朋友可以參考下

有時候我們在開發(fā)中會遇到這樣一種情況,例如:顯示手機號我們需要將中間4位遮擋掉,一般使用“*”號代替,或是顯示身份證號碼是為了保護個人信息也同樣需要遮擋掉4位,故可用到下列方式、代碼進行實現:

核心代碼

<?php 
 
/**
 +----------------------------------------------------------
 * 將一個字符串部分字符用*替代隱藏
 +----------------------------------------------------------
 * @param string $string 待轉換的字符串
 * @param int  $bengin 起始位置,從0開始計數,當$type=4時,表示左側保留長度
 * @param int  $len  需要轉換成*的字符個數,當$type=4時,表示右側保留長度
 * @param int  $type  轉換類型:0,從左向右隱藏;1,從右向左隱藏;2,從指定字符位置分割前由右向左隱藏;3,從指定字符位置分割后由左向右隱藏;4,保留首末指定字符串
 * @param string $glue  分割符
 +----------------------------------------------------------
 * @return string 處理后的字符串
 +----------------------------------------------------------
 */
function hideStr($string, $bengin = 0, $len = 4, $type = 0, $glue = "@") {
	if (empty($string))
		return false;
	$array = array();
	if ($type == 0 || $type == 1 || $type == 4) {
		$strlen = $length = mb_strlen($string);
		while ($strlen) {
			$array[] = mb_substr($string, 0, 1, "utf8");
			$string = mb_substr($string, 1, $strlen, "utf8");
			$strlen = mb_strlen($string);
		}
	}
	if ($type == 0) {
		for ($i = $bengin; $i < ($bengin + $len); $i++) {
			if (isset($array[$i]))
				$array[$i] = "*";
		}
		$string = implode("", $array);
	} else if ($type == 1) {
		$array = array_reverse($array);
		for ($i = $bengin; $i < ($bengin + $len); $i++) {
			if (isset($array[$i]))
				$array[$i] = "*";
		}
		$string = implode("", array_reverse($array));
	} else if ($type == 2) {
		$array = explode($glue, $string);
		$array[0] = hideStr($array[0], $bengin, $len, 1);
		$string = implode($glue, $array);
	} else if ($type == 3) {
		$array = explode($glue, $string);
		$array[1] = hideStr($array[1], $bengin, $len, 0);
		$string = implode($glue, $array);
	} else if ($type == 4) {
		$left = $bengin;
		$right = $len;
		$tem = array();
		for ($i = 0; $i < ($length - $right); $i++) {
			if (isset($array[$i]))
				$tem[] = $i >= $left ? "*" : $array[$i];
		}
		$array = array_chunk(array_reverse($array), $right);
		$array = array_reverse($array[0]);
		for ($i = 0; $i < $right; $i++) {
			$tem[] = $array[$i];
		}
		$string = implode("", $tem);
	}
	return $string;
}
 
 
$str = '12345678901';
echo hideStr($str,2,4);

有時候需要考慮中文的替換那么可以參考下面的實現方法

對于字符串某部分使用*號替換的問題:

1.實例:

$username = "linshouyue"; 
echo substr_replace($username,'****','3','4'); 

substr_replace()函數  

1.1)第一參數為需處理的字符串
1.2)第二參數為使用的替換符號
1.3)第三/四參數為需要替換的字符串位置(從第三個字符開始替換后四位字符)

但是該函數對于英文字符/數字數沒有任何問題得,但是一旦遇到漢字就會出現很尷尬的問題,因為漢字與英文字符的字節(jié)是不一樣的,可以使用一下方法解決:

/**     * *替換中文漢字

     * @author 月月

     */
    function substr_cut($user_name){
        $strlen     = mb_strlen($user_name, 'utf-8');
        $firstStr     = mb_substr($user_name, 0, 1, 'utf-8');
        $lastStr     = mb_substr($user_name, -1, 1, 'utf-8');
        return $strlen == 2 ? $firstStr . str_repeat('*', mb_strlen($user_name, 'utf-8') - 1) : $firstStr . str_repeat("*", $strlen - 2) . $lastStr;
    }

好了,這篇文章就介紹到這了

相關文章

  • php數組函數序列之array_sum() - 計算數組元素值之和

    php數組函數序列之array_sum() - 計算數組元素值之和

    array_sum() 函數返回數組中所有值的總和。如果所有值都是整數,則返回一個整數值。如果其中有一個或多個值是浮點數,則返回浮點數
    2011-10-10
  • 淺析PHP 按位與或 (^ 、&)

    淺析PHP 按位與或 (^ 、&)

    本篇文章是對PHP中的按位與或 (^ 、&)進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP預定義接口——Iterator用法示例

    PHP預定義接口——Iterator用法示例

    這篇文章主要介紹了PHP預定義接口——Iterator用法,結合實例形式分析了PHP Iterator(迭代器)接口相關原理、定義與使用方法,需要的朋友可以參考下
    2020-06-06
  • PHP傳輸base64數據不完整的解決方法

    PHP傳輸base64數據不完整的解決方法

    最近在做OCR增值稅務處理時,接口是通過圖片轉base64提交處理然后返回數據的,通過在線工具進行測試,發(fā)現傳遞過去的數據可以使用,接收到的數據卻提示損壞,所以本文給大家介紹了PHP傳輸base64數據不完整的解決方法,需要的朋友可以參考下
    2024-05-05
  • PHP命名空間namespace用法實例分析

    PHP命名空間namespace用法實例分析

    這篇文章主要介紹了PHP命名空間namespace用法,結合實例形式分析了php中命名空間的功能、使用方法及相關注意事項,需要的朋友可以參考下
    2016-09-09
  • php開發(fā)微信支付獲取用戶地址

    php開發(fā)微信支付獲取用戶地址

    微信支付的收貨地址共享功能,主要是統一的管理微信用戶個人的收貨地址,其收貨地址可以被應用于所有可以調用的開發(fā)者。用戶的收貨地址包含了很多個人信息,因此該接口必須要通過申請,申請的方式可以在mp平臺上查看到。
    2015-10-10
  • php異常處理技術,頂級異常處理器

    php異常處理技術,頂級異常處理器

    php對異常的處理與java一樣,用到的是try{}catch(){}
    2012-06-06
  • Apache+PHP+MySQL搭建PHP開發(fā)環(huán)境圖文教程

    Apache+PHP+MySQL搭建PHP開發(fā)環(huán)境圖文教程

    這篇文章主要介紹了Apache+PHP+MySQL搭建PHP開發(fā)環(huán)境圖文教程,文中通過圖文流程介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 10條php編程小技巧

    10條php編程小技巧

    這篇文章主要介紹了10條php編程小技巧,本文是實際開發(fā)經驗的總結,注意到了一些編程細節(jié),需要的朋友可以參考下
    2015-07-07
  • 如何提高PHP速度

    如何提高PHP速度

    如何提高PHP速度...
    2007-02-02

最新評論