Проблема с числами и небытием - PullRequest
0 голосов
/ 06 июля 2011

Итак, у меня есть скрипт, который включает в себя формы, которые хранятся в файлах с именами, такими как 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 ]

2 голосов
/ 06 июля 2011

Вы можете заполнить нулями с помощью sprintf:

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

Это даст вам:

$string = '0102';

Или, если у вас есть:

$value = 102;

Тогда:

$string = sprintf('%04d', $value);
1 голос
/ 06 июля 2011

Может быть, вам следует использовать 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"
...