ParadigmX
28.08.2016 - 04:42
Помогите пожалуйста реализовать скрипт сортировки файлов по папкам,
допустим есть каталог \TestFile
В нем много файлов разных форматов .jpg, .zip, .mp4 итд.
нужно их разбросать по папкам с именами относительно форматов JPG, ZIP, MP4.
Как это реализовать в коде?
Получаем список файлов, потом
проходим по этому массиву, сразу
получаем расширение файлов, записываем расширение файлов в массив, убираем повторяющиеся значения,
создаём каталоги под файлы.
Осуществляем проход по первому массиву
копируем файл, если нужно переместить файл, то старый
файл удалить
_____________
Принимаю заказы, писать в ЛС
ParadigmX
28.08.2016 - 11:38
Спасибо, но я не понимаю как переместить сразу несколько файлов я понимаю как один но как неизвестное число?
Пройдите по ссылкам и прочитайте - станет понятнее, а потом уже спрашивайте что останется непонятным.
Цитата |
я не понимаю как переместить сразу несколько файлов я понимаю как один но как неизвестное число |
У вас получится массив по которому потом пройдёт скрипт и скопирует или переместит куда нужно.
_____________
Принимаю заказы, писать в ЛС
ParadigmX
28.08.2016 - 12:14
Цитата (Медведь @ 28.08.2016 - 11:45) |
Пройдите по ссылкам и прочитайте - станет понятнее, а потом уже спрашивайте что останется непонятным.
Цитата | я не понимаю как переместить сразу несколько файлов я понимаю как один но как неизвестное число |
У вас получится массив по которому потом пройдёт скрипт и скопирует или переместит куда нужно.
|
$dir = '/TestFile';
$files = scandir($dir, 1);
$arr = array("Что сдесь должно быть - $files ? или розширения типа zip, jpg итд или как?");
foreach ($arr as $value) {
function getExtension1($filename) {
return end(explode(".", $filename));
}
mkdir("/TestFile/$filename", 0700);
если можеш дай пример кода пожалуйста :rolleyes:
Я сейчас немного занят, если сам не разберёшься и мужики не подскажут, вечером посмотрю.
_____________
Принимаю заказы, писать в ЛС
ParadigmX
28.08.2016 - 12:19
Цитата (Медведь @ 28.08.2016 - 12:16) |
Я сейчас немного занят, если сам не разберёшься и мужики не подскажут, вечером посмотрю. |
Спасибо большое я то сам попробую постараюсь разобраться, может еще раз погуглю подобное найду )
Another Reality
28.08.2016 - 13:00
$files = scandir('./TestFile');
$types = [];
foreach($files as $key => $filename)
{
$tmp_type = end(explode(".", $filename));
if(!in_array($tmp_type, $types))
{
$types[] = $tmp_type;
if(!file_exists('./TestFile/' . $tmp_type))
mkdir('./TestFile/' . $tmp_type);
}
@rename('./TestFile/' . $filename, './TestFile/' . $tmp_type . '/' . $filename);
}
ParadigmX
29.08.2016 - 01:23
Цитата (Another Reality @ 28.08.2016 - 13:00) |
$files = scandir('./TestFile'); $types = [];
foreach($files as $key => $filename) { $tmp_type = end(explode(".", $filename));
if(!in_array($tmp_type, $types)) { $types[] = $tmp_type;
if(!file_exists('./TestFile/' . $tmp_type)) mkdir('./TestFile/' . $tmp_type); }
@rename('./TestFile/' . $filename, './TestFile/' . $tmp_type . '/' . $filename); }
|
Спасибо большое, теперь буду тестить )))
Another Reality
29.08.2016 - 11:16
Цитата (ParadigmX @ 29.08.2016 - 01:23) |
Спасибо большое, теперь буду тестить ))) |
Пожалуйста.
ParadigmX
29.08.2016 - 13:43
Цитата (ParadigmX @ 29.08.2016 - 01:23) |
Цитата (Another Reality @ 28.08.2016 - 13:00) | $files = scandir('./TestFile'); $types = [];
foreach($files as $key => $filename) { $tmp_type = end(explode(".", $filename));
if(!in_array($tmp_type, $types)) { $types[] = $tmp_type;
if(!file_exists('./TestFile/' . $tmp_type)) mkdir('./TestFile/' . $tmp_type); }
@rename('./TestFile/' . $filename, './TestFile/' . $tmp_type . '/' . $filename); }
|
Спасибо большое, теперь буду тестить )))
|
У меня старій Php
Он не понимает
$types = [];
:(
Как исправит?
ParadigmX
29.08.2016 - 13:46
Цитата (Another Reality @ 28.08.2016 - 13:00) |
<pre class="sh_sourceCode" rel="php"> <span class="sh_variable">$files</span> <span class="sh_symbol">=</span> <span class="sh_function">scandir</span><span class="sh_symbol">(</span><span class="sh_string">'./TestFile'</span><span class="sh_symbol">);</span> <span class="sh_variable">$types</span> <span class="sh_symbol">= [];</span>
<span class="sh_control">foreach</span><span class="sh_symbol">(</span><span class="sh_variable">$files</span> <span class="sh_control">as</span> <span class="sh_variable">$key</span> <span class="sh_symbol">=></span> <span class="sh_variable">$filename</span><span class="sh_symbol">)</span> <span class="sh_cbracket">{</span> <span class="sh_variable">$tmp_type</span> <span class="sh_symbol">=</span> <span class="sh_function">end</span><span class="sh_symbol">(</span><span class="sh_function">explode</span><span class="sh_symbol">(</span><span class="sh_string">"."</span><span class="sh_symbol">,</span> <span class="sh_variable">$filename</span><span class="sh_symbol">));</span>
<span class="sh_control">if</span><span class="sh_symbol">(!</span><span class="sh_function">in_array</span><span class="sh_symbol">(</span><span class="sh_variable">$tmp_type</span><span class="sh_symbol">,</span> <span class="sh_variable">$types</span><span class="sh_symbol">))</span> <span class="sh_cbracket">{</span> <span class="sh_variable">$types</span><span class="sh_symbol">[] =</span> <span class="sh_variable">$tmp_type</span><span class="sh_symbol">;</span>
<span class="sh_control">if</span><span class="sh_symbol">(!</span><span class="sh_function">file_exists</span><span class="sh_symbol">(</span><span class="sh_string">'./TestFile/'</span> <span class="sh_symbol">.</span> <span class="sh_variable">$tmp_type</span><span class="sh_symbol">))</span> <span class="sh_function">mkdir</span><span class="sh_symbol">(</span><span class="sh_string">'./TestFile/'</span> <span class="sh_symbol">.</span> <span class="sh_variable">$tmp_type</span><span class="sh_symbol">);</span> <span class="sh_cbracket">}</span>
@<span class="sh_function">rename</span><span class="sh_symbol">(</span><span class="sh_string">'./TestFile/'</span> <span class="sh_symbol">.</span> <span class="sh_variable">$filename</span><span class="sh_symbol">,</span> <span class="sh_string">'./TestFile/'</span> <span class="sh_symbol">.</span> <span class="sh_variable">$tmp_type</span> <span class="sh_symbol">.</span> <span class="sh_string">'/'</span> <span class="sh_symbol">.</span> <span class="sh_variable">$filename</span><span class="sh_symbol">);</span> <span class="sh_cbracket">}</span> </pre> |
У меня старый Php Он не понимает :(
$types = [];
Как исправить на array?
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.