php 中正確處理 objectguid 的方式:
function guidtostr($binary_guid)
函式unpack ( string $format , string $data [, int $offset = 0 ] ) : array
作用:從二進位制字串中解壓資料。
第乙個引數$format
,指定解包時使用的格式。詳細請查閱 手冊
第二個引數$data
,待解包的二進位制資料
guid 本質上是乙個16位元組(128位)的二進位制資料:位位元組
描述位元組序324
資料1原生162
資料2原生162
資料3原生328
資料4大端序
其通常會寫成 十六進製制 的字串,如:3f2504e0-4f89-11d3-9a0c-0305e82c3301
按照該規則,對$format
進行選用:
v:無符號長整型(32位,小端位元組序)
v:無符號短整型(16位,小端位元組序)
n:無符號短整型(16位,大端位元組序)
n:無符號長整型(32位,大端位元組序)
$unpacked = unpack('va/v2b/n2c/nd', $binary_guid);
v 後的 a 是 unpack 返回結果中的索引值,
v2b 表示第二段資料解析為兩個,索引值分別為b1
,b2
,
n2c,nd 也是一樣的
$unpacked = [
"a" => 1059390688
"b1" => 20361
"b2" => 4563
"c1" => 39436
"c2" => 773
"d" => 3895210753
]
對解包後資料進行格式化:
$guid = sprintf('%08x-%04x-%04x-%04x-%04x%08x',
$unpacked['a'], $unpacked['b1'], $unpacked['b2'], $unpacked['c1'], $unpacked['c2'], $unpacked['d'];
%08x
將$unpacked['a']
轉為 8位的十六進製制,長度不夠時,前面補零。
如:773
轉為十六進製制為305
,%04x
則格式化為0305
用Php如何操作LDAP
1 ldap是什麼 ldap是乙個用來發布目錄資訊到許多不同資源的協議。通常它都作為乙個集中的位址本使用,不過根據組織者的需要,它可以做得更加強大。ldap最基本的形式是乙個連線資料庫的標準方式。該資料庫為讀查詢作了優化。因此它可以很快地得到查詢結果,不過在其它方面,例如更新,就慢得多。要特別注意的...
php怎麼訪問ldap,用PHP如何操作LDAP
1 ldap是什麼 ldap是乙個用來發布目錄資訊到許多不同資源的協議。通常它都作為乙個集中的位址本使用,不過根據組織者的需要,它可以做得更加強大。ldap最基本的形式是乙個連線資料庫的標準方式。該資料庫為讀查詢作了優化。因此它可以很快地得到查詢結果,不過在其它方面,例如更新,就慢得多。要非凡注重的...
Windows下配置PHP支援LDAP擴充套件方法
載入php ldap模組 呼叫ldap時,報錯資訊 php fatal error uncaught error call to undefined function ldap connect 如何解決這個問題呢?以下是解決問題的過程,僅供參考 1 在php.ini檔案裡面找到 extension ...