Переместить файл, начиная с AD и EG и HL и MP и QT и UW и XZ - PullRequest
0 голосов
/ 12 июля 2011

У меня есть миллионы файлов в папке, которые трудно прочитать с помощью скрипта, поэтому мне нужно хранить файл в отдельной папке.точно так же как

Переместить файл в AD и EG и HL и MP и QT и UW и XZ с начальным символом там.

Я пытаюсь использовать FTP, но миллион, так что файл не отображается в каталогеправильно (потребовалось очень много времени для отображения и перемещения, некоторое время завис на FTP), также попробуйте cpanel и т. д., но не повезло.

, если есть решение с помощью PHP-скрипта, пожалуйста, дайте мне знать, это мне очень поможет.

1 Ответ

1 голос
/ 12 июля 2011

Ну, вы можете использовать DirectoryIterator и перемещать файлы в зависимости от имени файла.Я все же предпочел бы порекомендовать более прямой подход с SSH или подобным (есть вещи, которые PHP не должен был делать - как вещи, не относящиеся к веб-сайту);этот подход заключается в удаленном клиенте --request -> веб-сервер --access -> файловая система.

Кроме этого, что-то вроде

$dirname = dirname(__FILE__);
$iterator = new DirectoryIterator($dirname);

foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile() && $fileinfo->isWritable()) {
        $fname = $fileinfo->getFilename();
        rename($dirname. DIRECTORY_SEPARATOR .$fname, $dirname. DIRECTORY_SEPARATOR .ucfirst(substr($fname, 0, 1)). DIRECTORY_SEPARATOR .$fname);
    }
}

Следует переместить файлы в подкаталогс той же буквой, что и первый символ в имени файла.Если вы хотите перемещаться на основе групп категорий символов, просто поместите вызов rename() в оператор switch.

...