$flag=0;
$dirName1 = '/usr/local/apache2/htdocs/upload';
if (!is_dir ( $dirName1 )) {
echo "<script>alert('您还未上传文件,请上传!');</script>";
    echo "<script>window.location='ipsearch.php';</script>";
}
else{
//    echo "hello";
    $toFileName1 = $dirName1.'/'.$id.".txt";
        
    if (file_exists($toFileName1)) {     
        $flag=1;

    }
    else{     
    }

    if($flag==1){
        unlink($toFileName1); 
    }
}上面的代码,为什么是先执行删除文件的啊?我的删除文件是有if条件判断的,但是程序运行后,直接删除了文件,导致if (file_exists($toFileName1)) 也进不去。
将if($flag==1){
        unlink($toFileName1); 
    }
删除后就运行正常,不懂

解决方案 »

  1.   

    是先进去if (file_exists($toFileName1))  再删除文件的吧。
      

  2.   

    你怎么知道没有进
    if (file_exists($toFileName1))
    你在这里面echo一个字符串。
    如果说这里没进的话,那你flag的值不会改变,后面删除文件的判断不成立
    文件不会被删除
      

  3.   

    我试了一下,把代码中变量$dirName1 的值改成这样就对了
    $dirName1='usr/local/apache2/htdocs/upload';
    你试一下吧
      

  4.   

    楼主的逻辑真是诡异,明明只有一个判断,还设置个状态变量。这还不算,状态变量设置为1后,当然会执行
    unlink()了。lz怎么知道是先删除的文件呢。按你的代码应该是先判断file_exists设置flag为1 ,然后执行的unlink.不知道代码怎么执行的话,可以在各个关键步骤加上调试语句  echo "1..."; echo "2...";
      

  5.   

    可能都没有明白我的意思啊!我是说我想先处理文件,处理过后就把他删了,但是我发现不管我把代码unlink放在所有代码的后面的后面,它还是给我先unlink了,导致我没有办法处理文件。
    诡异~
      

  6.   

    没见到有处理文件的代码。。
    $flag=0;
    $dirName1 = '/usr/local/apache2/htdocs/upload';
    if (!is_dir ( $dirName1 )) {
    echo "<script>alert('您还未上传文件,请上传!');</script>";
      echo "<script>window.location='ipsearch.php';</script>";
    }
    else{
    // echo "hello";
      $toFileName1 = $dirName1.'/'.$id.".txt";
      
      if (file_exists($toFileName1)) { 
      $flag=1;  }
      else{ 
      }////////////////////////////////////////////////////////////
    这里赶快处理文件啊。要不下面就删啦
    ////////////////////////////////////////////////////////////
      if($flag==1){
      unlink($toFileName1);  
      }
    }
     
      

  7.   

    回复11楼
    我在
    if (file_exists($toFileName1)) {  
      $flag=1;  }
    中处理文件,只是碍于篇幅,没有贴出来哈~