如何判断函数是否已经执行过一次?
ps:有没有其他复制函数扩展,复制过程中忽略没改动的文件,改动的即覆盖掉<?php
//复制函数扩展 xcopy: dir2dir, file2file, file2dir, for windows... by zyme
function xcopy($source, $dest){
if ( !file_exists($source) ){return "error: $source is not exist!";}
if ( is_dir($source) ){
if ( file_exists($dest) AND !is_dir($dest) ){return "error: $dest is not a dir!";}
if ( !file_exists($dest) ){mkdir($dest);}
$od = opendir($source);
while ( $one = readdir($od) ){
if ( $one=="." OR $one==".." ){continue;}
$result = xcopy($source."\\".$one, $dest."\\".$one, $oncemore=true);
if ( $result !== true ){return $result;}
}
closedir($od);
}
else{
if ( file_exists($dest) AND is_dir($dest) ){
if ( func_num_args()>2 AND $oncemore===true ){return "error: $dest is a dir!";}
$result = xcopy($source, $dest."\\".basename($source), $oncemore=true);
if ( $result !== true ){return $result;}
}
else{copy($source, $dest); touch($dest, filemtime($source));}
}
return true;
}

/*以下是问题重点,上面的是别人copy函数扩展,可整目录拷贝。
*/
$dir1="./source/";
$dir1="./direction/";
if(){  //请问如何判断之前是否已经复制过?如果复制过一次,则不再复制
xcopy($dir1,$dir2)
}

?>

解决方案 »

  1.   

    php有查看文件最后修改日期的函数.你可以先进行比对,如果不一致,就进行复制.
      

  2.   

    这个可以考虑在前面定义个静态变量
    static $flg=0;
    if($flg===0){
       xcopy($dir,$dir2);
       $flg++;
    }
      

  3.   

    你这个函数本身就具备这个功能判断目标目录是否存在,不存在则建立
    if ( !file_exists($dest) ){mkdir($dest);} 判断目标文件是否存在,不存在则复制
    if ( file_exists($dest) AND is_dir($dest) ){
     
    }
    else{copy($source, $dest); touch($dest, filemtime($source));}