我创建了一个从GET语句中获取MP3文件的脚本。我需要一种方法来确保如果原始名称“recording.mp3”不存在,则从GET内容创建它,如果它确实存在,则在文件名后附加一个数字。我究竟做错了什么?到目前为止不起作用的部分是附加数字,但获取文件和保存效果很好。删除while循环和程序工作!
<?php
$actual_name = pathinfo("PHPAPI/recording.mp3",PATHINFO_FILENAME);
$original_name = $actual_name;
$extension = pathinfo("PHPAPI/recording.mp3",PATHINFO_EXTENSION);
$i = 0;
if ($_GET["RecordingUrl"]){
while(file_exists("PHPAPI/".$actual_name.".".$extension)){
$actual_name = $original_name.$i;
$name = $actual_name.".".$extension;
$i++;
}
file_put_contents($name, file_get_contents($_GET["RecordingUrl"]));
}
elseif ($_GET["RecordingUrl"]){
file_put_contents($original_name.".".$extension,
file_get_contents($_GET["RecordingUrl"]));
}
?>
答案 0 :(得分:0)
要使代码更有条理,请使用函数
<?php
$actual_name = pathinfo("PHPAPI/recording.mp3",PATHINFO_FILENAME);
$original_name = $actual_name;
$extension = pathinfo("PHPAPI/recording.mp3",PATHINFO_EXTENSION);
if ($_GET["RecordingUrl"]) {
if (file_exists("PHPAPI/".$actual_name.".".$extension)) {
$actual_name = find_new_name($original_name, $extension);
} else {
$actual_name = $original_name;
}
$name = $actual_name.".".$extension;
file_put_contents($name, file_get_contents($_GET["RecordingUrl"]));
}
function find_new_name ( $file, $extension ) {
$name = $file.".".$extension;
$i = 0;
while(file_exists("PHPAPI/".$name)){
$new_name = $file.$i;
$name = $new_name.".".$extension;
$i++;
}
return $new_name;
}
?>