2016-12-21 55 views
1

ファイルの名前を変更しようとしていますが、このエラーが発生します。指定された名前のファイルのパスが見つかりません

$newFile = "$surname _$firstname _$dob"; 
$string = str_replace(' ', '', $newFile); 
rename($filename, "$string.pdf"); 

このコードは、このエラー

Warning: rename(0001_D_A.pdf,Mccoy_Edward_11/22/2016.pdf): The system cannot find the path specified. (code: 3) in C:\xampp\htdocs\script.php on line 7 

は、しかし、私は、変数せずに、通常の文字列を使用するようにコードを変更した場合、それはエラーなしでファイルの名前を変更します生成します。

$newFile = "$surname _$firstname _$dob"; 
$string = str_replace(' ', '', $newFile); 
rename($filename, "helloworld"); 

$文字列から出力される -

Mccoy_Edward_11/22/2016 

答えて

1

日付で/は、ファイル名には無効であり、機能によって、ディレクトリの区切りとして解釈されます。
使用-ではなくスラッシュは、Windowsのファイル名に無効な文字があるためだ日付の部分、すなわちMM-DD-YYYY

$newFile = "{$surname}_{$firstname}_{$dob}"; 
$string = str_replace('/', '-', $newFile); 
rename($filename, "$string.pdf"); 
0

を分離するために(彼らは、Unixライクなシステム上のディレクトリの区切りとして動作します)。あなたは何かを有効なものに置き換える必要があります。アンダースコア: $string = str_replace('/', '_', $newFile);

+0

これは正しくありません。スラッシュはWindowsのファイル名には使用できません。 https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx(または自分で試してみてください)。 Windowsはディレクトリセパレータとしてバックスラッシュ '\\'を使用します。 – dev0

+0

OK、あなたが何を意味するか分かります。 – dev0

関連する問題