Я хочу напечатать шестнадцатеричные значения каждого из символов в строке PHP. Например, я хочу показать шестнадцатеричные значения каждого символа в строке, где я пытаюсь установить четвертый символ в Control-C (0x03).PHP печатать шестнадцатеричные значения символов в строке
$str=sprintf('ab1%c',0x03);
for ($cnt=0; $cnt<4; $cnt++)
{
$chr=$str[$cnt];
echo '$str['.$cnt.'] = "'.$str[$cnt].'" = '.sprintf('0x%02x',$chr[0])."\n";
}
var_dump(str_split($str));
Что я получаю это:
$str[0] = "a" = 0x00
$str[1] = "b" = 0x00
$str[2] = "1" = 0x01
$str[3] = "" = 0x00
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "1"
[3]=>
string(1) ""
}
Кажется, что $chr
является строкой, а не характера и sprintf()
печатают целое значение строки - ноль - вместо целочисленное значение одного символа.
Возможно ли это сделать на PHP? Я был уверен, что есть способ ...
[ога()] (HTTP: // WWW .php.net/manual/en/function.ord.php) –
@MarkBaker спасибо - вы должны были отправить свой комментарий в качестве ответа, чтобы я мог его принять. –