PHP - Время модификации извлеченных файлов устанавливается в соответствии с часовым поясом сервера - Как изменить? - PullRequest
0 голосов
/ 29 мая 2018

Таким образом, наш код создает zip-файл, и внутри него находятся PDF-файлы из определенной папки.Все работает нормально, за исключением того, что когда этот zip-файл загружается на компьютер и файлы извлекаются - время изменения каждого PDF-файла следует за часовым поясом сервера.(Наш сайт находится на общем сервере GoDaddy, и они расположены в Аризоне. Мы находимся в Сингапуре.)

Есть ли способ изменить это?Я пытался установить часовой пояс по умолчанию или использовать сенсорный (), но безуспешно.

// Initialize archive object
$zip = new ZipArchive();
$res = $zip->open(plugin_dir_path( __FILE__ ).'MortgageWise-All-Reports.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);

if ($res === TRUE) {
 // Create recursive directory iterator
 /** @var SplFileInfo[] $files */
 $files = new RecursiveIteratorIterator(
  new RecursiveDirectoryIterator($rootPath)
 );

 foreach ($files as $name => $file) {
 // Skip directories (they would be added automatically)
  if (!$file->isDir()) {
   // Get real and relative path for current file
   $filePath = $file->getRealPath();
   $relativePath = substr($filePath, strlen($rootPath));

   date_default_timezone_set("Asia/Singapore");

   //touch($filePath, );

   // Add current file to archive
   $zip->addFile($filePath, $relativePath);
  }
 }

 // Zip archive will be created only after closing object
 $zip->close();
}
else {
 echo "File not created.";
}

1 Ответ

0 голосов
/ 29 мая 2018

Я бы начал с попытки установить часовой пояс в начале скрипта, прежде чем создавать ZIP, а не в цикле foreach.

Но с учетом сказанного я не верю, что это будет иметь большое значение, так как файлы PDF уже существуют?И, следовательно, уже будут назначены эти свойства!

У вас есть доступ к Web Host Manager или подобному?Если у вас есть VPS или выделенный сервер, вы можете самостоятельно изменить часовой пояс сервера.

РЕДАКТИРОВАТЬ: извините, вы уже заявили, что находитесь на общем сервере, очень рекомендую VPS, чтобы дать вам полный контрольсверх этих настроек, должно быть только $ 50 в месяц

...