最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php實現(xiàn)encode64編碼類實例

 更新時間:2015年03月24日 11:36:58   作者:歐陽不瘋  
這篇文章主要介紹了php實現(xiàn)encode64編碼類,實例分析了php實現(xiàn)encode64編碼的技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了php實現(xiàn)encode64編碼類。分享給大家供大家參考。具體如下:

encode64可以獲得最短的由26個英文大小寫字母數(shù)字加上"-_"兩個符號編碼的數(shù)據(jù), 這個個字串可以在網(wǎng)絡(luò)自由傳輸, 無需考慮被自動轉(zhuǎn)碼引起的混亂. 缺點(diǎn): 對于大字串太慢了, 原因不明, 可能PHP腳本本身就是慢, 所以它內(nèi)置 很多函數(shù), 這些函數(shù)如果用腳本來實現(xiàn)是不可忍受的. 而JavaScript就沒這個問題, 腳本的速度快的多.

<?PHP
//encode64編碼可以同時取代encodeURI,encodeURIComponent,endode函數(shù)
//因為選取的這些字符都不會被編碼.
class Encode64{
 function code($str) {
  $KEY = 'PaAwO65goUf7IK2vi9-xq8cFTEXLCDY1Hd3tV0ryzjbpN_BlnSs4mGRkQWMZJeuh';
  $a = StrToBytes($str);
  $len = count($a);
  $res = $len % 3;
  $s = "";$i = 2;$v = 0;
  for (; $i < $len; $i += 3) {
   $v = $a[$i - 2] + ($a[$i - 1] << 8) + ($a[$i] << 16);
   $s .= $KEY[$v & 0x3f];
   $s .= $KEY[($v >> 6) & 0x3f];
   $s .= $KEY[($v >> 12) & 0x3f];
   $s .= $KEY[($v >> 18)];
  }
  if ($res == 1) {
   $v = $a[$i - 2];
   $s .= $KEY[$v & 0x3f];
   $s .= $KEY[($v >> 6) & 0x3f];
  } else if ($res == 2) {
   $v = $a[$i - 2] + ($a[$i - 1] << 8);
   $s .= $KEY[$v & 0x3f];
   $s .= $KEY[($v >> 6) & 0x3f];
   $s .= $KEY[($v >> 12) & 0x3f];
  }
  return $s;
 }
 function decode($codeStr) {
  $KEY = 'PaAwO65goUf7IK2vi9-xq8cFTEXLCDY1Hd3tV0ryzjbpN_BlnSs4mGRkQWMZJeuh';
  $dic = array();
  for ($i = 0; $i < 64; $i++) {
   $dic[$KEY[$i]] = $i;
  }
  $len = strlen($codeStr);
  $res = $len % 4;
  $cLen = floor($len/4)*3;
  if($res==2) $clen += 1;
  elseif($res==3) $clen += 2;
  $code = range(0,$clen);
  $i = 3;$v = 0; $j = 0;
  for (; $i < $len; $i += 4) {
   $v = $dic[$codeStr[$i - 3]];
   $v += $dic[$codeStr[$i - 2]] << 6;
   $v += $dic[$codeStr[$i - 1]] << 12;
   $v += $dic[$codeStr[$i]] << 18;
   $code[$j] = $v & 0xff;
   $code[$j+1] = ($v >> 8) & 0xff;
   $code[$j+2] = ($v >> 16) & 0xff;
   $j += 3;
  }
  if ($res == 2) {
 //正確的字節(jié)數(shù)肯定是余2或3, 沒有1的情況, 如果出現(xiàn), 舍棄.
   $v = $dic[$codeStr[$i - 3]];
   $v += $dic[$codeStr[$i - 2]] << 6;
   $code[$j] = $v & 0xff;
  } else if ($res == 3) {
   $v = $dic[$codeStr[$i - 3]];
   $v += $dic[$codeStr[$i - 2]] << 6;
   $v += $dic[$codeStr[$i - 1]] << 12;
   $code[$j] = $v & 0xff;
   $code[$j+1] = ($v >> 8) & 0xff;
  }
  return BytesToStr($code);
 }
}
function BytesToStr($bytes) {
 $str = '';
 foreach($bytes as $ch) {
  $str .= chr($ch);
 }
 return iconv('UTF-16BE','utf-8',$str);
}
function StrToBytes($str) {
 $str = iconv('utf-8','UTF-16BE',$str);
 $len = strlen($str);
 $bytes = array();
 for($i=0;$i<$len;$i++) {
  $bytes[] = ord($str[$i]) ;
 }
 return $bytes;
}
?>

希望本文所述對大家的php程序設(shè)計有所幫助。

相關(guān)文章

  • PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\

    PHP Warning: PHP Startup: Unable to load dynamic library \ D

    今天在家啟動PHP環(huán)境的時候,突然發(fā)現(xiàn)不能加載php_mysqli.dll了,網(wǎng)上找了一圈,沒有解決方案!在群里面受一哥們兒的啟發(fā),竟然解決了,如果你的問題還沒有解決,請按下面的方法試試
    2012-06-06
  • PHP與SQL注入攻擊防范小技巧

    PHP與SQL注入攻擊防范小技巧

    SQL注入攻擊是黑客攻擊網(wǎng)站最常用的手段。如果你的站點(diǎn)沒有使用嚴(yán)格的用戶輸入檢驗,那么常容易遭到SQL注入攻擊。SQL注入攻擊通常通過給站點(diǎn)數(shù)據(jù)庫提交不良的數(shù)據(jù)或查詢語句來實現(xiàn),很可能使數(shù)據(jù)庫中的紀(jì)錄遭到暴露,更改或被刪除。
    2011-09-09
  • PHP生成及獲取JSON文件的方法

    PHP生成及獲取JSON文件的方法

    這篇文章主要介紹了PHP生成及獲取JSON文件的方法,涉及php針對json格式數(shù)據(jù)及文件相關(guān)操作技巧,需要的朋友可以參考下
    2016-08-08
  • PHP中替換鍵名的簡易方法示例詳解

    PHP中替換鍵名的簡易方法示例詳解

    默認(rèn)輸出的時候,將數(shù)據(jù)庫字段名作為數(shù)組的鍵名進(jìn)行輸出,但帶有鍵名的數(shù)據(jù)不能夠滿足未知情況下的操作,下面為大家介紹個不錯的方法可以解決這個問題
    2014-01-01
  • php根據(jù)用戶語言跳轉(zhuǎn)相應(yīng)網(wǎng)頁

    php根據(jù)用戶語言跳轉(zhuǎn)相應(yīng)網(wǎng)頁

    這篇文章主要介紹了php根據(jù)用戶語言跳轉(zhuǎn)相應(yīng)網(wǎng)頁的方法,主要區(qū)分國內(nèi)國外,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 淺析php變量作用域的一些問題

    淺析php變量作用域的一些問題

    學(xué)過C的人用php的時候一般會相當(dāng)順手,而且感到php太方便太輕松。但在變量作用域這方面卻與c有不同的地方,搞不好會相當(dāng)郁悶,就找不到錯誤所在
    2013-08-08
  • 安裝apache2.2.22配置php5.4(具體操作步驟)

    安裝apache2.2.22配置php5.4(具體操作步驟)

    本篇文章是對安裝apache2.2.22配置php5.4的具體操作步驟進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php實現(xiàn)圖片按比例截取的方法

    php實現(xiàn)圖片按比例截取的方法

    這篇文章主要介紹了php實現(xiàn)圖片按比例截取的方法,涉及php針對圖形的讀取、運(yùn)算及生成相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • PHP下利用shell后臺運(yùn)行PHP腳本,并獲取該腳本的Process ID的代碼

    PHP下利用shell后臺運(yùn)行PHP腳本,并獲取該腳本的Process ID的代碼

    PHP下利用shell后臺運(yùn)行PHP腳本,并獲取該腳本的Process ID的代碼,學(xué)習(xí)php的朋友可以參考下。
    2011-09-09
  • PHP開發(fā)實現(xiàn)微信退款功能示例

    PHP開發(fā)實現(xiàn)微信退款功能示例

    這篇文章主要介紹了PHP開發(fā)實現(xiàn)微信退款功能的方法,涉及php針對微信接口的相關(guān)調(diào)用操作技巧,需要的朋友可以參考下
    2017-11-11

最新評論

遂平县| 洪湖市| 阳信县| 石林| 岐山县| 永丰县| 翁牛特旗| 泗阳县| 彭山县| 锡林郭勒盟| 阿坝| 鄂伦春自治旗| 防城港市| 化德县| 司法| 奈曼旗| 蒲江县| 安庆市| 巩留县| 伊宁市| 巧家县| 汤阴县| 宁南县| 河北省| 武安市| 佛教| 社会| 贡觉县| 五峰| 安顺市| 绵竹市| 芦溪县| 辽阳县| 会宁县| 涞水县| 汽车| 饶阳县| 准格尔旗| 华阴市| 西乌珠穆沁旗| 虎林市|