2016-12-21 2 views
1

Ich versuche, eine Datei umzubenennen, aber ich bekomme diesen Fehler.Das System kann den angegebenen Pfad nicht finden. Umbenennen der Datei

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

Dieser Code erzeugt diese Fehler

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 

Allerdings, wenn ich den Code ändern, es eine normale Zeichenfolge ohne eine Variable zu verwenden, wird die Datei ohne Fehler umbenennen.

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

Die Ausgabe von $ string ist -

Mccoy_Edward_11/22/2016 

Antwort

1

Die / in dem Datum sind ungültig für Dateinamen und als Verzeichnistrenn durch die Funktion interpretiert.
Verwenden - stattdessen das Datum Teile d mm-dd-yyyy

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

Das ist zu trennen, weil die Schrägstriche ungültige Zeichen in einem Windows-Dateinamen sind (sie fungieren als Verzeichnistrenn auf Unix-ähnlichen Systemen). Sie müssen sie durch etwas Gültiges ersetzen, z. Unterstriche: $string = str_replace('/', '_', $newFile);

+0

Das ist nicht richtig, Vorwärts Schrägstriche sind nicht erlaubt in Windows-Dateinamen, s. https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx (oder versuchen Sie es selbst). Windows verwendet Backslashes '\\' als Verzeichnistrennzeichen. – dev0

+0

OK, ich verstehe was du meinst. – dev0

Verwandte Themen