При использовании var_dump()
, тогда string(14)
означает, что значение равно string
, которое содержит 14
байтов. Так что string(11)
и string(14)
- это не разные "типы" строк, а просто строки разной длины.
Я бы использовал что-то вроде этого, чтобы увидеть, что на самом деле находится внутри этих строк:
function strToHex($value, $prefix = '') {
$result = '';
$length = strlen($value);
for ( $n = 0; $n < $length; $n++ ) {
$result .= $prefix . sprintf('%02x', ord($value[$n]));
}
return $result;
}
echo strToHex("test\r\n", '%');
Выход:
%74%65%73%74%0d%0a
Это декодируется как:
- % 74 - т
- % 65 - e
- % 73 - с
- % 74 - т
- % 0d - \ r (возврат каретки)
- % 0a - \ n (перевод строки)
Или, как указано в комментариях @Karolis, вы можете использовать встроенную функцию bin2hex()
:
echo bin2hex("test\r\n");
Выход:
746573740d0a