Я пытаюсь добавить дату к имени файла перед копированием в PHP.
$fileS = "file.csv"; $date = date('mdY H:i:s A e'); $fileD = "file$date.csv";
Я даже попробовал
$fileD = "file"."date('mdY H:i:s A e')".".csv";
Затем я копирую файлы
$Confirm = copy($fileS, $fileD);
Я знаю, что должен проверить, существует ли файл и т. Д., Но для простоты задать вопрос, который я использую :).
Я предполагаю, что это как-то связано с функцией копирования, которая не считывает конкатенированные строки. Возможно, я ошибаюсь.
Любая помощь с этим очень ценится.
EDIT: Двоеточие, кажется, проблема не $ fileD. Любой тип конкатенации будет работать. (Спасибо Greenisha).
Это работает, но любые идеи, чтобы заставить его работать с двоеточием. Кажется странным иметь время с '-' вместо ':'.
$date = date('mdY His A e');
Неважно. Колонки не допускаются в соглашении об именах файлов в окнах. Вышла из этой части. Спасибо, Майкл.
Я создаю это в Windows сейчас, но когда он идет на производство, он будет в UNIX. Так будет ли двоеточие работать, если я его изменю? Любое предложение будет полезно в будущем. Спасибо за вашу помощь.
Попробуйте использовать формат даты, который не включает двоеточия. Колонки не разрешены в именах файлов Windows и, возможно, других типов файловой системы.
// Try, for example $fileD = "file".date('mdY-His A e').".csv";
Насколько я вижу, ваша проблема связана с идентификатором:
e Timezone identifier (added in PHP 5.1.0) Examples: UTC, GMT, Atlantic/Azores
Но имя файла не может быть с "/" внутри. Попробуйте использовать другой формат даты
Знаете, я всегда опасаюсь помещать пробелы в имена файлов, называть их возвратом к 80-м и 90-м годам. Что произойдет, если вы просто попробуете:
var_dump(preg_replace('-\W-','_',date('mdY H:i:s A e')));
Вы можете сделать: $fileD = "file".$date.".csv";
Или: $fileD = "file{$date}.csv";
Когда вы объединяете заявление (например, свою функцию даты), оно не должно быть окружено кавычками. Поэтому ваш второй пример должен работать так:
$fileD = "file".date('mdY H:i:s A e').".csv";
Попробуйте эту функцию утилиты:
public static function appendDateTimeToFileName($fileName) { $appended = date('_Y_m_d_H_i_s'); $dotCount = substr_count($fileName, '.'); if (!$dotCount) { return $fileName . $appended; } $extension = pathinfo($fileName, PATHINFO_EXTENSION); $fileName = pathinfo($fileName, PATHINFO_FILENAME); return $fileName . $appended . '.' . $extension; }
Пример:
sample.jpg -> sample_2017_02_19_01_09_10.jpg sample -> sample_2017_02_19_01_09_44