把文件里面的每一個字節(jié)的ascii碼轉(zhuǎn)成16進制就可以了,如下:
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)、懷仁網(wǎng)絡(luò)推廣、成都小程序開發(fā)、懷仁網(wǎng)絡(luò)營銷、懷仁企業(yè)策劃、懷仁品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供懷仁建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
$content?=?file_get_contents("myfile");
$hex?=?"";
for($i=0;$i=strlen($content);$i++){
$asc?=?ord(substr($content,$i,1));
$hex?.=?dechex($asc);
}
file_put_contents("mynewfile",$hex);
echo ord(pack("H*", 'F'));
這個方法可以把hex轉(zhuǎn)成bin數(shù)據(jù)直接寫文件什么的都可以了
我不確定你要的答案是什么, 不過php中并不存在字符數(shù)組這個c的概念
至于bin轉(zhuǎn)hex, 直接用bin2hex()即可, 不過由于php沒有字符數(shù)組, 余下的如果不是你要的, 再轉(zhuǎn)其它吧
php中字符本身就可以使用$var[x]的形式直接調(diào)用單個字符, 如果樓主想問的不是這些, 歡迎追問
十六進制轉(zhuǎn)為二進制有兩種理解方法,第一是十六進制字符串轉(zhuǎn)二進制字符串,第二是十六進制數(shù)轉(zhuǎn)二進制數(shù),下面分別介紹2種轉(zhuǎn)換方法:
1.hex2bin函數(shù)可以將十六進制字符串轉(zhuǎn)換為二進制字符串,詳細(xì)用法如下:
hex2bin — 轉(zhuǎn)換十六進制字符串為二進制字符串
string?hex2bin(string?$data)
轉(zhuǎn)換十六進制字符串為二進制字符串。
參數(shù):
data:十六進制表示的數(shù)據(jù)
返回值:
返回給定數(shù)據(jù)的二進制表示 ?或者在失敗時返回 FALSE。
異常:
如果輸入的十六進制字符串是奇數(shù)長數(shù)或者無效的十六進制字符串將會拋出E_WARNING 級別的錯誤。
示例:
$hex?=?hex2bin("6578616d706c65206865782064617461");
echo?$hex;//example?hex?data(其中16進制代表的是ascii碼)
2.base_convert是真正意義上的進制轉(zhuǎn)換函數(shù)
base_convert — 在任意進制之間轉(zhuǎn)換數(shù)字
string?base_convert(?string?$number,?int?$frombase,?int?$tobase)
返回一字符串,包含 number以 tobase 進制的表示。number 本身的進制由frombase指定。frombase 和 tobase 都只能在2 和 36 之間(包括 2 和 36)。高于十進制的數(shù)字用字母 a-z 表示,例如a 表示 10,b 表示 11 以及 z 表示 35。
參數(shù):
number:要轉(zhuǎn)換的數(shù)字
frombase:原始進制
tobase:轉(zhuǎn)換后的進制
示例:
$hexadecimal?=?'A37334';
echo?base_convert($hexadecimal,?16,?2);//101000110111001100110100