php string转hex,PHP将字符串转换为十六进制,并将十六进制转换为字符串

对于ord($ char)<16的任何char,您将获得仅1长的十六进制返回值。您忘记添加0填充。

这应该解决它:

function strToHex($string){

$hex = '';

for ($i=0; $i

$ord = ord($string[$i]);

$hexCode = dechex($ord);

$hex .= substr('0'.$hexCode, -2);

}

return strToUpper($hex);

}

function hexToStr($hex){

$string='';

for ($i=0; $i < strlen($hex)-1; $i+=2){

$string .= chr(hexdec($hex[$i].$hex[$i+1]));

}

return $string;

}

// Tests

header('Content-Type: text/plain');

function test($expected, $actual, $success) {

if($expected !== $actual) {

echo "Expected: '$expected'\n";

echo "Actual:   '$actual'\n";

echo "\n";

$success = false;

}

return $success;

}

$success = true;

$success = test('00', strToHex(hexToStr('00')), $success);

$success = test('FF', strToHex(hexToStr('FF')), $success);

$success = test('000102FF', strToHex(hexToStr('000102FF')), $success);

$success = test('↕↑↔§P↔§P ♫§T↕§↕', hexToStr(strToHex('↕↑↔§P↔§P ♫§T↕§↕')), $success);

echo $success ? "Success" : "\nFailed";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值