国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php park、unpark、ord 函數使用方法(二進制流接口應用實例)

php park、unpark、ord 函數使用方法(二進制流接口應用實例)

2019-11-11 13:03php技術網 PHP教程

在工作中,我也逐漸了解到park,unpark,ord對于二進制字節處理的強大。 下面我逐一介紹它們。

park,unpark,ord這3個函數,在我們工作中,用到它們的估計不多。 我在最近一個工作中,因為通訊需要用到二進制流,然后接口用php接收。當時在處理時候,查閱不少資料。因為它們使用確實比較少,也很少朋友工作中會用到它們。 在工作中,我也逐漸了解到park,unpark,ord對于二進制字節處理的強大。 下面我逐一介紹它們。

park,unpark,ord函數使用介紹 

park函數說明:本函數用來將資料壓縮打包到位的字符串之中。

 

語法:pack(format,args+)

參數

描述

format

必需。規定在包裝數據時所使用的格式。

args+

可選。規定被包裝的一個或多個參數。

 

字符

說明

a

將字符串空白以 NULL 字符填滿

A

將字符串空白以 SPACE 字符 (空格) 填滿

h

十六進位字符串,低位在前

H

十六進位字符串,高位在前

c

有號字符

C

無號字符

s

有號短整數 (十六位,依計算機的位順序)

S

無號短整數 (十六位,依計算機的位順序)

n

無號短整數 (十六位, 高位在后的順序)

v

無號短整數 (十六位, 低位在后的順序)

i

有號整數 (依計算機的順序及范圍)

I

無號整數 (依計算機的順序及范圍)

l

有號長整數 (卅二位,依計算機的位順序)

L

無號長整數 (卅二位,依計算機的位順序)

N

無號短整數 (卅二位, 高位在后的順序)

V

無號短整數 (卅二位, 低位在后的順序)

f

單精確浮點數 (依計算機的范圍)

d

倍精確浮點數 (依計算機的范圍)

x

空位

X

倒回一位

@

填入 NULL 字符到絕對位置

 

unpark函數說明:本函數用來將位的字符串的資料解壓縮

語法:unpack(format,args+)

參數

描述

format

必需。規定在包裝數據時所使用的格式。

args+

可選。規定被包裝的一個或多個參數。

參數與park相同。

ord函數說明:返回對應字符的acill碼值

語法:ord($character);

實例說明:

復制代碼代碼如下:


<?php 
//A字符 
$str=(pack("A*", "中國")); 
echo $str,"=",strlen($str),"字節\n"; 
getAscill($str); 
//H字符 
$str=(pack("H*", "fffe")); 
echo $str,"=",strlen($str),"字節\n"; 
getAscill($str); 
//C字符 
$str=(pack("C*", "55","56","57")); 
echo $str,"=",strlen($str),"字節\n"; 
getAscill($str); 

//i字符 短整形 32位 4個字節 64位8個字節 
$str=(pack("i", "100")); 
echo $str,"=",strlen($str),"字節\n"; 
getAscill($str); 

//s字符 短整形 2個字節 
$str=(pack("s", "100")); 
echo $str,"=",strlen($str),"字節\n"; 
getAscill($str); 

//l字符 長整形 4個字節 
$str=(pack("l", "100")); 
echo $str,"=",strlen($str),"字節\n"; 
getAscill($str); 

//f字符 單精度浮點 4個字節 
$str=(pack("f", "100")); 
echo $str,"=",strlen($str),"字節\n"; 
getAscill($str); 

//d字符 雙精度浮點 8個字節 
$str=(pack("d", "100")); 
echo $str,"=",strlen($str),"字節\n"; 
getAscill($str); 

function getAscill($str) 

$arr=str_split($str); 
foreach ($arr as $v) 

echo $v,"=",ord($v),"\n"; 

echo "=============\r\n\r\n"; 



通過上面實例,我們可以看到,相同字符串,用不同格式存儲,所占用的字節數不同。 這里也可以看到,以不同格式保存字符可以達存儲節省空間。而且啟到不可讀加密效果。 突然想到一點,設計數據庫字段類型問題,如果一個字段只是:10位長度整型。我們設置為整形:256*256*256*256 就4個字節,如果設置為10個長度字符串。那就占10個字節。整個消化空間就是2倍的。 設置正確字符類型對提高數據庫性能有很多幫助。呵呵,有點跑題了…… 

php處理字節碼通訊實例分析 
剛剛說的pack作用:節省空間、加密格式 

下面就這2個做一個實例說明,接口開發要求: 

參數

描述

用戶名

20字節,字符型

密碼

10字節,字符型

年齡

1字節,無符char型

出生年月

4字節,整型(19800101)

郵箱

50字節,字符串

各字段間用:"\0"分割

A、PACK封包 

復制代碼代碼如下:


<?php 
$code=array( 
"username"=>array("A20","張三adfb12"), 
"pass"=>array("A10","asdf*#1"), 
"age"=>array("C","23"), 
"birthday"=>array("I","19900101"), 
"email"=>array("A50","zhangsan@163.com")); 

$stream=join("\0",parkByArr($code)); 
echo $stream,strlen($stream); 

 

復制代碼代碼如下:


file_put_contents("c:/1.txt",$stream);//將流保存起來便于下面讀取 

function parkByArr($arr) 

$atArr=array(); 
foreach ($arr as $k=>$v) 

$atArr[]=pack($v[0],$v[1]); 

return $atArr; 

function getAscill($str) 

$arr=str_split($str); 
foreach ($arr as $v) 

echo $v,"=",ord($v),"\n"; 


因為用”\0”分割,整個長度是89字節。通過上面輸出,有一些字符串輸出是可以讀取的,其它都已經變成亂碼了。這也是我說可以保密效果原因。 
B、Unpack解包 
解包需要按照,打包方式讀取,該讀取多長,該用什么類型讀取,必須與打包規定一樣。 

復制代碼代碼如下:


<?php 
$code=array( 
"username"=>array("A20"), 
"pass"=>array("A10"), 
"age"=>array("C"), 
"birthday"=>array("I"), 
"email"=>array("A50")); 
$stream=file_get_contents("c:/1.txt"); 
var_dump(parkByArr($stream,$code)); 
function parkByArr($str,$code) 

$Arr=explode("\0",$str); 
$atArr=array(); 
$i=0; 
foreach ($code as $k=>$v) 

$atArr[$k]=unpack($v[0],$Arr[$i]); 
$i++; 

return $atArr; 


php park、unpark、ord 函數使用方法(二進制流接口應用實例)

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩高清一区二区 | 日韩男女视频 | 久久精品亚洲精品 | 久久久成人精品 | 欧美一区二区在线观看视频 | 欧洲一级毛片 | 日韩簧片 | 特黄视频| 美女久久| 99热这里有精品 | 久久久久国产 | 久久男人的天堂 | 欧美国产激情二区三区 | 日韩一二区 | 中文字幕一区二区三区乱码在线 | 一区二区三区四区在线视频 | 欧美视频三区 | 国产精品一区视频 | 国产日产久久高清欧美一区 | av在线入口| 久操视频在线 | 欧美综合一区二区三区 | 欧美三级视频 | 亚洲精品国产一区 | 国产视频一区二区三区在线观看 | 毛片免费在线 | 亚洲电影一区 | 国产毛片黄色片 | 国产精品成人国产乱一区 | 色婷婷网 | 欧美成人精品一区二区三区 | 成人国产精品一级毛片视频 | 午夜精品一区二区三区在线播放 | 欧美日韩高清 | 欧美a视频| 亚洲一区中文 | 黄色短片免费看 | 亚洲精品久久久一区二区三区 | 免费看黄色电影 | 超碰官网| 极品女神高潮呻吟av久久 |