我写这个简单的代码来保存图像:
// $randomimage contains a random image url.
$content = file_get_contents($randomimage);
file_put_contents('images/'.$randomimage, $content);
我需要一种不重写具有相同名称的图像的方法。因此,如果我的/ images /文件夹中已存在具有特定名称的图像,则不要执行任何操作。 这很简单,但我不知道该怎么做。
答案 0 :(得分:4)
当然,请使用file_exists
。
$path = 'images/'.$randomimage;
if( !file_exists( $path)) {
// Note, see below
file_put_contents( $path, $content);
}
重要的是要注意,这本身会在您的程序中引入竞争条件,因为有可能另一个进程可以在您检查文件存在时创建文件,然后写入文件。在这种情况下,您将覆盖新创建的文件。但是,这种可能性很小,但可能。
答案 1 :(得分:2)
除了nickb。 is_file优于file_exists,file_exists将在目录AND文件上返回true。
所以它会是:
if( !is_file ( 'images/'.$randomimage)) {
file_put_contents('images/'.$randomimage, $content);
}
PS:还有一个函数is_dir,如果你想知道的话。
答案 2 :(得分:0)