3 回答

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
您要使用pack和base_convert。
// Convert a string into binary
// Should output: 0101001101110100011000010110001101101011
$value = unpack('H*', "Stack");
echo base_convert($value[1], 16, 2);
// Convert binary into a string
// Should output: Stack
echo pack('H*', base_convert('0101001101110100011000010110001101101011', 2, 16));

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
是的,當(dāng)然!
那里...
$bin = decbin(ord($char));
...然后再回來。
$char = chr(bindec($bin));

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
字符串只是字節(jié)序列,因此實(shí)際上是PHP中的二進(jìn)制數(shù)據(jù)。您到底想做什么?
編輯
如果你想在數(shù)據(jù)庫(kù)中存儲(chǔ)二進(jìn)制數(shù)據(jù),這個(gè)問題經(jīng)常是在你的數(shù)據(jù)庫(kù)中的列定義。PHP不二進(jìn)制數(shù)據(jù)和字符串之間進(jìn)行區(qū)分,但是數(shù)據(jù)庫(kù)做。比如在MySQL中,你應(yīng)該存儲(chǔ)在二進(jìn)制數(shù)據(jù)BINARY,VARBINARY或BLOB列。
另一種辦法是給base64_encode你的PHP字符串,并將其存儲(chǔ)在一些VARCHAR或TEXT數(shù)據(jù)庫(kù)列。但要注意的是,當(dāng)字符串的長(zhǎng)度將增加base64_encode使用。
- 3 回答
- 0 關(guān)注
- 354 瀏覽
添加回答
舉報(bào)