хотя цикл в PHP не работает - PullRequest
0 голосов
/ 10 января 2012

Я новичок в php, я пытаюсь загрузить файл на URL, где скрипт 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, если он не существует, остальное должно прервать цикл while, а позже я сохраню файл с этим именем ,

Работает только в том случае, если файл не существует, после этого ему просто не удается переименовать путь к файлу.

Что здесь не так?

Ответы [ 2 ]

2 голосов
/ 10 января 2012

Отредактировано, это должно работать.

$i = 1;

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

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

$target_path = $target_path.$i.'_'.$base;
0 голосов
/ 10 января 2012

Возможно, этот маленький кусочек кода поможет вам:

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;
}

Обновление : мой плохой, исправлено, спасибо за ваш отзыв.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...