PHP копирует изображения по времени - PullRequest
0 голосов
/ 26 июня 2018

Я хочу скопировать изображения из одной папки в другую на сервере, теперь я использую этот код:

<?php
function read_dir($dir)
{
   $list = array();
   if (is_dir($dir)) 
   {
     if ($handle = opendir($dir)) 
     {
        while (false !== ($file = readdir($handle))) 
        {
           if ($file != "." && $file != "..") 
           {
               $list[] = $file;
           }
        }
     }
     closedir($handle);
   }
   return $list;
}
$src="oldfolder";
$dest="newfolder";
$list= read_dir($src);
foreach($list as $key => $val)
{
   copy("$src/$val","$dest/$val");
}
echo "Done";
?>

Но мне нужно скопировать только изображения, выбранные по времени - например, изображения, загруженные между «сейчас» и 5 минутами. назад ..

Кто-нибудь может помочь? Спасибо

Теперь мой PHP похож на ниже. Кажется, что он работает с результатом «Готово», но ничего не копируется ..

<?php
function read_dir($dir)
{
   $list = array();
   if (is_dir($dir)) 
   {
     if ($handle = opendir($dir)) 
     {
        while (false !== ($file = readdir($handle))) 
        {

         $fpath = 'oldfolder'.$file;
         if (file_exists($fpath)) {

           if($file != "." && $file != ".." &&                 
DateTime::createFromFormat('U', filemtime($file)) < new DateTime("-5 
minutes")) 
           {
               $list[] = $file;
          }
          }
        }
     }
     closedir($handle);
   }
   return $list;
}
$src="oldfolder";
$dest="newfolder";
$list= read_dir($src);
foreach($list as $key => $val)
{
   copy("$src/$val","$dest/$val");
}
echo "Done"; 
?>

Ответы [ 2 ]

0 голосов
/ 23 июля 2018

Так что это мой код, который хорошо работает для меня - копируйте изображения между папками в соответствии со временем (- 5 секунд), установленным другим кодом в файле "time.txt":

 <?php
 function read_dir($dir)
 {
 $list = array();
 if (is_dir($dir)) 
 {
 if ($handle = opendir($dir)) 
 {
 while (false !== ($file = readdir($handle))) 
 {
 $fpath = 'oldfolder/'.$file;
 if (file_exists($fpath)) {

 $subor = fopen("./time.txt", "r"); 
 $cas_txt=fgets($subor, 11);
 fclose($subor);
 $cas_zac = DateTime::createFromFormat('U', $cas_txt)->modify('-5 seconds');
 if ($file != "." && $file != ".." && DateTime::createFromFormat('U', 
 filemtime($fpath)) > $cas_zac)
 {
 $list[] = $file;
 }
 }
 }
 }
 closedir($handle);
 }
 return $list;
 }
 $src="oldfolder";
 $dest="newfolder";
 $list= read_dir($src);
 foreach($list as $key => $val)
 {
 //copy file to new folder
 copy("$src/$val","$dest/$val");
 }
 echo "Done";
 ?>

У меня есть еще два вопроса:

Пожалуйста, как можно повернуть изображения на 180 ° до или после копирования? Возможно ли это в одном php-коде?

Как я могу отправить несколько файлов - изображений из моего кода - как вложения по почте в php?

Спасибо за вашу помощь.

0 голосов
/ 26 июня 2018

Вы должны использовать функцию filemtime

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