-1

$ filename値を割り当てるための行が1行しかないように、このコードをリファクタリングするにはどうすればよいですか。

$i = 1;
$filename = $config->PHOTO_PATH . $list->ID . "_" . $i . ".jpg"
while(file_exists($filename)) 
{
    doSomething();
    $i++;
    $filename = $config->PHOTO_PATH . $list->ID . "_" . $i . ".jpg";
}
4

4 に答える 4

1
$i = 1;

$ok=true;
while($ok) 
{
    $filename = $config->PHOTO_PATH . $list->ID . "_" . $i++ . ".jpg";
    $ok=file_exists($filename)
    if ($ok){
       doSomething();
    }
}
于 2013-03-24T16:43:51.270 に答える
1
$filename = 'prefix' .
            (preg_replace('/prefix([0-9]+)suffix/', '$1', array_pop(glob('prefix*suffix'))) + 1) .
            'suffix';
于 2013-03-24T17:01:57.893 に答える
0

次のコードを置き換えるだけです。

$i++;
$filename = $config->PHOTO_PATH . $list->ID . "_" . $i . ".jpg";

これのために:

$filename = $config->PHOTO_PATH . $list->ID . "_" . ++$i . ".jpg";
于 2013-03-24T16:42:05.317 に答える
0
$i = 1;
do {
    doSomething();
    $filename = sprintf('%s%s_%d.jpg', $config->PHOTO_PATH, $list->ID, $i++);
} while (file_exists($filename));
于 2013-03-24T16:44:54.093 に答える