如何通过PHP substr()函数重写/更改前导零的默认删除?
在PHP中,当我们执行如何通过PHP substr()函数重写/更改前导零的默认删除?,php,whitespace,substr,removing-whitespace,Php,Whitespace,Substr,Removing Whitespace,在PHP中,当我们执行substr()时,结果字符串应该类似于0004,PHP会自动删除前导的0s,只给出4 我想避免这种行为。我希望前导零保持在那里。我怎样才能强制执行呢 例如,下面的代码片段打印4 echo substr("100041", 1, 4); 我如何强制它打印0004?谁说的?Php不会删除字符串中的0 无论如何,创建一个自己的函数 <?php function substring($data,$from,$length){ $sub = ""; $
substr()
时,结果字符串应该类似于0004
,PHP会自动删除前导的0
s,只给出4
我想避免这种行为。我希望前导零保持在那里。我怎样才能强制执行呢
例如,下面的代码片段打印4
echo substr("100041", 1, 4);
我如何强制它打印
0004
?谁说的?Php不会删除字符串中的0
无论如何,创建一个自己的函数
<?php
function substring($data,$from,$length){
$sub = "";
$data = str_split($data);
$i = 0;
$l = 1;
foreach($data as $letter){
if($i >= $from && $l <= $length){
$sub .= $letter;
$l = $l+1;
}
$i = $i+1;
}
return $sub;
}
echo substring("100041", 1, 4);
?>
它不会:
var_dump(substr("100041", 1, 4));
()
根据本文,这是一个100%字符串函数。它不会以任何特殊方式处理数字。您的PHP版本是什么?因为它在PHP7.2中运行良好,“PHP会自动删除前导的
0
s并只给出4
”——不,它不会。亲自检查:@akshaypjoshi 7.2。这很奇怪。这个代码是否省略了零?只是想知道是否有更多的代码会影响这一点,可能是将值视为整数或其他什么。可以使用sprintf
或stru-pad
;这不是答案。它不能帮助解决OP遇到的问题。或者使用sprintf(“%08d”,100041)代码>
string(4) "0004"