2011-06-22 11 views
3

PHPでコピーする前にファイル名に日付を追加しようとしています。PHPでコピーする前にファイル名に日付を追加する

$fileS = "file.csv"; 
$date = date('m-d-Y H:i:s A e'); 
$fileD = "file$date.csv"; 

は、私もその後、私は、私は、ファイルがなどなどが、聞いて、簡略化のために存在している場合、私がチェックする必要があります知っているファイル

$Confirm = copy($fileS, $fileD); 

をコピー

$fileD = "file"."date('m-d-Y H:i:s A e')".".csv"; 

を試してみました質問私はこれを使用しています:)。

これは、連結文字列を読み取らないコピー機能と関係があると想定しています。私はここで間違っているかもしれません。

これに関するお手伝いがあります。

EDIT:コロンが$ fileDではないようです。どのようなタイプの連結も機能します。 (Greenishaに感謝します)。

これは、コロンで動作させるためのアイデアですが、これは機能します。 ':'の代わりに ' - 'で時間を持つのは変です。

$date = date('m-d-Y H-i-s A e'); 

気にしないでください。 Windowsのファイル命名規則では、コロンは使用できません。その部分を見落とした。ありがとうマイケル。

私はこれを今のところWindowsで作成していますが、プロダクションに行くとUNIXになります。私がそれを変更すれば、結腸はそこで働くでしょうか?どんな提案も道に沿って役立ちます。ご協力いただきありがとうございます。

+0

何OS?コロンはファイル名に使用できますか?私はWindowsがそれらを許可するとは思わない、例えば。 –

+0

別の日付形式を選択して試してみてください。たぶん 'm-d-Y-His' –

答えて

12

コロンを含まない日付形式を試してみてください。コロンは、Windowsのファイル名や他のファイルシステムの種類では許可されていません。あなたが知っている

// Try, for example 
$fileD = "file".date('m-d-Y-His A e').".csv"; 
1

あなたは行うことができます: $fileD = "file".$date.".csv";

または: $fileD = "file{$date}.csv";

+0

どちらも動作しません。 – theking963

1

をあなたが(たとえば、あなたの日付関数など)のステートメントを連結するとき、それは引用符で囲むべきではありません。だからあなたの第二の例がそうのように書かれて動作するはずです:

$fileD = "file".date('m-d-Y H:i:s A e').".csv"; 
+0

引用符なしでも動作しません – theking963

2

を私の知る限り見るように、あなたの問題は、識別子は次のとおりです。

e Timezone identifier (added in PHP 5.1.0) Examples: UTC, GMT, Atlantic/Azores 

しかし、ファイル名が「/」内とすることはできません。別の日付形式を使用してみてください

+0

私はそれが問題だとは思わないが、あなたが提案したことを試してもそれはまだ動作しません。私は現在までの日付を変更しました( 'm-d-Y H:i:s A')。 – theking963

+0

あなたのフォーマットからコロンを削除してみてください – Greenisha

+0

確かにコロンが問題のようです...何らかの理由でコロンが好きではありません – theking963

2

、私はいつも、ファイル名にスペースを入れての警戒よ、80年代と90年代に先祖返りと呼んでいます。

var_dump(preg_replace('-\W-','_',date('m-d-Y H:i:s A e'))); 
+1

ノスタルジー。あなたはスペースを避ける唯一の人ではありません。それは良い習慣であり、コード全体のスペースをエスケープすることを心配する必要がない時間を節約します。 –

0

は、このユーティリティの機能を試してみてください:あなただけしようとした場合はどうなります

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 
関連する問題