Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php循环,如果文件存在则跳过_Php_Loops_If Statement - Fatal编程技术网

php循环,如果文件存在则跳过

php循环,如果文件存在则跳过,php,loops,if-statement,Php,Loops,If Statement,我需要一些PHP逻辑方面的帮助。我正在将图像添加到已经存在一些图像的目录中。我试图在目录上循环并跳过名称(如果它们存在的话)…很难解释…以下是我得到的: if(isset($_POST['imgName'])){ $artName = $_POST['imgName']; if ($_FILES['file']['name'][0] != ""){ $num = 0; for ($i=0; $i < count($_FILES['file']['name']); $i++)

我需要一些PHP逻辑方面的帮助。我正在将图像添加到已经存在一些图像的目录中。我试图在目录上循环并跳过名称(如果它们存在的话)…很难解释…以下是我得到的:

if(isset($_POST['imgName'])){
$artName = $_POST['imgName'];
if ($_FILES['file']['name'][0] != ""){
    $num = 0;
    for ($i=0; $i < count($_FILES['file']['name']); $i++){
        $fileExt = str_replace("image/", ".", $_FILES['file']['type'][$i]);
        $newFileName = "..//images/$num$artName$fileExt";
        if (file_exists($newFileName)){
            $num++;
            $newFileName = "..//images/".$num.$artName.$fileExt;
            move_uploaded_file($_FILES['file']['tmp_name'][$i], $newFileName);
        }
    }
}
}
if(isset($\u POST['imgName'])){
$artName=$_POST['imgName'];
如果($_FILES['file']['name'][0]!=“”){
$num=0;
对于($i=0;$i
我试着做了一个while循环和一个do-while循环,但我无法让它工作……也许我做错了。我能得到一些建议吗?谢谢

这是针对博客的,$artName是文章名,$num[0]将是主图像,其余将是画廊图像

解决方案:

if(isset($_POST['imgName'])){
$artName = $_POST['imgName'];
if ($_FILES['file']['name'][0] != ""){
    $pics = glob('..//images/*'.$artName.'*');
    if($pics[0] != ""){
        for($j=0; $j<count($pics); $j++){
            $path = pathinfo($pics[$j]);
            $ext = $path['extension'];
            rename($pics[$j], "..//images/".$j.$artName.".".$ext);
        }
    }
    $num = count($pics);
    for ($i=0; $i < count($_FILES['file']['name']); $i++){
        $fileExt = str_replace("image/", ".", $_FILES['file']['type'][$i]);
        $newFileName = "..//images/$num$artName$fileExt";
        move_uploaded_file($_FILES['file']['tmp_name'][$i], $newFileName);
        $num++;
    }
}
}
if(isset($\u POST['imgName'])){
$artName=$_POST['imgName'];
如果($_FILES['file']['name'][0]!=“”){
$pics=glob(“..//images/*”.$artName.*”);
如果($pics[0]!=“”){

对于($j=0;$j)您是否想过混淆文件名?例如,取基本文件名,将当前时间戳附加到字符串上,使用
md5()
创建新文件名?这种方式不太可能覆盖文件。可能是问题,也可能不是问题,但是你的
中的2个
/
。///images/
其中一个应该删除。例如:
。/images/
@JustinWood我知道这种方式,但我是为一个博客这样做的,我正在尝试使用它图像的博客条目名称,因此输出它将非常简单…即图像/0articlename.jpeg将是主要的文章图像,图像/1-…articlename.jpeg将是主要的文章图像gallery@Fred-我之前检查过,斜杠不是问题。我只是无法用我的逻辑来处理我所拥有的。。。