php - скрипт для исправления структуры папок - PullRequest
2 голосов
/ 04 августа 2011

Я меняю способ сохранения файлов на серверной части моего сайта с:

uploads/item/x/subitem/y/document.pdf

Где x и y - целочисленные идентификаторы, меняя его на:

uploads/item/x/subitem/y/report/document.pdf

Мне также нужно изменить текущий каталог, который содержит более 1000 записей.Есть хороший способ исправить эту структуру в php, не обращаясь к каждой папке во вложенных циклах, мне просто нужно добавить еще одну папку перед документом.

РЕДАКТИРОВАТЬ:

Это была команда, которую я пытался найти!

foreach(glob('uploads/item/*/subitem/*/*') as $filePath)

Спасибо за помощь, ребята.

Ответы [ 3 ]

0 голосов
/ 04 августа 2011

Вы пробовали переименовать php:

rename("uploads/item/x/subitem/y","uploads/item/x/subitem/y/report");
0 голосов
/ 04 августа 2011
// Change the current directory to the folder containing all your data
chdir('uploads/item/x/subitem/y');

// Attempt to create the report directory if it does not already exist
if ((file_exists('report') && is_dir('report')) || mkdir('report'))
{
    // Move every PDF file in the current directory
    foreach (glob('*.pdf') as $File)
    {
        rename($File, 'report/' . $File);
    }
}
else
{
    echo 'ERROR! Directory could not be created.';
}
0 голосов
/ 04 августа 2011

Не могли бы вы просто создать папку report/ в y/ и затем переместить все файлы в y/ в report/? Это вообще не требует PHP.

РЕДАКТИРОВАТЬ: мой bash очень ржавый, поэтому здесь, вероятно, много синтаксических ошибок. Но это основная идея:

for x in /fullpath/uploads/item/*
do
    for y in uploads/item/$x/subitem/*
    do
        cd /fullpath/uploads/item/$x/subitem/$y
        mkdir report/
        mv * report/
    done
done
...