所以我有一个脚本,其中包含存储在名为0101,0102的文件中的表单,下一个类别为0201,0202,0203。前两组数字是类别,第二组是页面表格。
我对这个编号的问题是我将数字存储为0101或0205,因为第一个数字只是一个不存在的东西, 0 ,它似乎是敲它关闭。我设法让它以一种混乱的方式工作的唯一方法是做这样的事情:
"planpages/0" . $nextcat . ".php"
$ nextcat可能是203.它似乎不喜欢任何东西前面的0,并且必须存储在前面有一些东西的字符串中(在上面的例子中,你有一个“/”符号)
如何解决数据丢失问题?我确实试过在其他地方查找,但我不知道该怎么处理查询。
编辑:更多代码。
该号码最初存储在$_GET['content']
中,传递给nextForm($current)
。
function nextForm($current) {
$next = $current[0] . $current[1] . $current[2] . $current[3] + 1;
$nextcat = $current[0] . $current[1] + 1 . 0 . 1;
if(file_exists("planpages/0" . $next . ".php")) {
return "0" . $next;
} elseif(file_exists("planpages/0" . $nextcat . ".php")) {
return "0" . $nextcat;
} else {
return $current;
}
}
希望这需要更多信息。它看起来像一团糟,因为我尽最大努力保留这些零,但它们一直在消失。
答案 0 :(得分:2)
您可以使用sprintf进行零填充:
$form = 1;
$page = 2;
$string = sprintf('%02d%02d', $form, $page);
这会给你:
$string = '0102';
或者如果你有:
$value = 102;
然后:
$string = sprintf('%04d', $value);
答案 1 :(得分:1)
也许您应该使用str_pad来填充类别和页面。
$category = 2;
$pages = 1;
$cat = str_pad($category, 2, "0", STR_PAD_LEFT);
$pag = str_pad($pages, 2, "0", STR_PAD_LEFT);
$filename = $cat . $pag;
// $filename = "0201"