0

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

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

4

2 回答 2

2

您可以使用 sprintf 进行零填充:

$form = 1;
$page = 2;
$string = sprintf('%02d%02d', $form, $page);

这会给你:

$string = '0102';

或者,如果您有:

$value = 102;

然后:

$string = sprintf('%04d', $value);
于 2011-07-06T15:40:10.500 回答
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"
于 2011-07-06T15:42:01.553 回答