数字和不存在的问题

时间:2011-07-06 15:34:46

标签: php variables formatting zero

所以我有一个脚本,其中包含存储在名为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;
    }
}

希望这需要更多信息。它看起来像一团糟,因为我尽最大努力保留这些零,但它们一直在消失。

2 个答案:

答案 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"