如何解决使用ltrim;从我的用户输入的开头删除“ 0”
|| 我要求用户输入1-9和a-f中的4个数字或字母。 然后,我将这些数字和字母取为“ 0”,并加上4个字节的值。 因此,如果用户输入00FF
,则值将为0000 0000 1111 1111
,因为0000
是0
的4个字节的值,而1111
是F
的4个字节的值。
我想从4字节值的总集合中除去任何前导ѭ7。
我尝试使用以下代码从一开始就摆脱了0 \。
$hexvalue2 = ltrim($hexvalue,\'0\');
echo $hexvalue2;
但是,这不起作用,据我所知,在看PHP.net时,这似乎是正确的,但显然不是。
谁能告诉我我要去哪里错了?或建议替代方案?
谢谢
解决方法
这有效:
<?
$h = 0x00001111;
$h = ltrim(dechex($h),\"0\");
echo $h;
?>
输出:1111
注意ѭ11以获得字符串。
, 我将修改将00FF
转换为0000 0000 1111 1111
的函数,以便在输入字符串的开头不出现0的情况下不添加0000
。
<?php
function convert4byte($in) {
$in = preg_replace(\'/^0+(.*)/\',\'$1\',$in);
$out = \'\';
$i = 0;
do {
$out .= sprintf(\'%04d\',decbin(hexdec($in[$i])));
$i++;
} while ($i < strlen($in) && $out .= \' \');
return $out;
}
$str = \'00FF\';
echo convert4byte($str);
?>
http://codepad.org/eCmhOpAO
, 这个对我有用:
$hexvalue = \'00001111\';
$hexvalue2 = ltrim($hexvalue,\'0\');
echo $hexvalue2;
//prints 1111
确保$hexvalue
是字符串,而不是其他任何类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。