Переименование файла с помощью функции rename () со счетчиком в php - PullRequest
0 голосов
/ 10 июля 2020

Привет гуру в дом. Пожалуйста, я хочу переименовать файл с помощью функции rename (), но это будет, если / пока файл существует, пусть он использует счетчик для переименования в другой файл.

пример, если sitemap.txt существует, пусть переименует его в sitemap1.txt если sitemap1.txt существует, пусть переименует его в sitemap2.txt , если sitemap.txt , sitemap1.txt , sitemap2.txt exists пусть переименует его в sitemap3.txt и так далее.

$filename = 'sitemap.txt';
$FileCounter = 1;
while (file_exists( $filename )){
rename($filename, "sitemap". $FileCounter++ .".txt");
}

приведенный выше фрагмент кода работает, но каждый раз, когда существует карта сайта1, он отказывается переходить к следующему счетчику, которым является sitemap2.txt

Я действительно не знаю, как заставить счетчик работать нормально. но мне это нужно только для функции rename().

Заранее спасибо.

1 Ответ

0 голосов
/ 10 июля 2020

решением может быть первое переименование, затем l oop, пока файл не будет достигнут, чтобы переименовать его в следующий счетчик:

    // if sitemap exists,
    if (file_exists("sitemap.txt")) {
        // rename it to sitemap1
        rename("sitemap.txt", "sitemap1.txt");
    }
    // if not, likely sitemaps1+ exist
    else {
        // init a new counter
        $FileCounter = 0;
        do {
            // increment the counter to check the next sitemap file
            $FileCounter++;
            // if sitemap<n> exists, break the loop
            $exist = file_exists("sitemap{$FileCounter}.txt");
        } while (!$exist);
        // prepare source and destination counters (n and n + 1)
        $NextFileCounter = $FileCounter + 1;
        // perform the rename
        rename("sitemap{$FileCounter}.txt", "sitemap{$NextFileCounter}.txt");
    }

это должно работать, дайте мне знать если текущий сниппет - это то, что вы искали!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...