虽然php中的循环不起作用

时间:2012-01-10 16:58:16

标签: php while-loop

我是php的新手,我正在尝试将文件上传到网址,其中php脚本应该具有检查文件是否已存在的逻辑,它应该在文件名后附加一个值,然后再次检查它是否存在如果没有,那么继续进行保存。

这是while循环:

$target_path = $target_path . basename( $_FILES['userfile']['name']); 
$i = 1;

while (true) {
    if (file_exists($target_path)) {
        $target_path = $i . "_" . $target_path;
        $i++;
    } else {
        break;
    }
}  

现在,我不确定是否休息;与其他语言的工作方式相同。我想要做的是目标路径,如果已经存在,将在while循环的每次迭代中更新和检查,如果它不存在,else应该打破while循环,然后我将保存具有该名称的文件。

仅当文件不存在时才有效,之后它无法重命名文件路径。

这里有什么问题?

2 个答案:

答案 0 :(得分:2)

编辑,这应该有用。

$i = 1;

$base = basename( $_FILES['userfile']['name']);

while (file_exists($target_path.$i.'_'.$base)) {
   $i++;
}

$target_path = $target_path.$i.'_'.$base;

答案 1 :(得分:-1)

也许这段代码可以帮到你:

function safeFilename($image_path,$filename_original)
{    $extension = strrchr($filename_original, ".");
     $filename_base = substr($filename_original,0,-1*strlen($extension));
     $filename = $filename_base;
     $counter = 1;
     while(file_exists($image_path.$filename.$extension))
     {     $filename = $filename_base . $counter;
           $counter++;
     }
     return $filename.$extension;
}

更新:我的不好,已修复,感谢您的反馈。