2016-01-13 52 views
0

我已經複製一個圖像文件多次,然後改名這樣說:通過引用文本文檔來重命名文件有哪些方法?

圖片文件:

x (1).jpg 
x (2).jpg 
x (3).jpg 
... 

我想重命名這些文件,指的是.txt文件,我已經存儲這些文件的所需名稱。

一號線需要一個名字:

a.jpg 
b.jpg 
c.jpg 
... 

我的PHP代碼至今:

for($i = 1; $i <= 420; $i++) { 
    rename("/folder1/folder2/x ($i).jpg", "/names.txt"); 
} 

我不知道怎麼去,因爲我認爲不知何故,必須指定在每個循環之後它應該跳過前一行。

回答

1

在php中的file method讀取文件並將每行插入到數組中。因此,您可以試試這個:

$filenames = file("/names.txt"); 

for($i = 1; $i <= 420; $i++) { 
    rename("/folder1/folder2/x ($i).jpg", $filenames[$i]); 
} 
1

您實質上是將所有.jpg文件重命名爲/names.txt。如果您需要從文件加載名稱,請使用file('/names.txt')。然後,您可以使用for循環遍歷該文件中的行。

2

您可以使用PHP使用copy()一步完成此操作。所有你需要的是(1)原始圖像文件(2)你想要的文件名稱列表,每行一個,(3)一個簡單的腳本來讀取文本文件並創建原始文件的副本。

// first you need to open and read your names file line by line 
$names_file = file("your_filenames.txt"); 
foreach($names_file as $line) { 
    copy("path_to_original_image.jpg", $line); 
    } 
+0

警告:複製(sample_name_from_txt_file.jpg):未能打開流:用C無效參數:\ XAMPP \ htdocs中\第\ query.php上線91 – CodeVolunteer

+0

副本()有兩個參數。第一個參數是應該複製的文件。第二個參數是文件應該複製到的地方。看起來你可能已經遺漏了一些東西。 – Typel

+0

您使用了逗號而不是句點來連接第二個參數的兩個部分。口譯員認爲你正在試圖通過第三個論點。試試這個:'copy(「filesystem/images/source.jpg」,「filesystem/images /".$ line);' – Typel