老师,我复制文件这样写 为啥复制不了,调了好久搞不通了
我分析了逻辑是可以实现的 但是就是复制不了文件夹,老师帮忙看看哪里不对,代码如下:
/**
* 将a目录下的所有文件和目录全部复制到b目录下,行成b/a/*
* @param string $src a
* @param string $dest b
* @return bool
*/
function copy_dir1(string $src, string $dest)
{
//检测源目录是否存在
if (!is_dir($src)) {
echo '1';
return false;
}
//检测目标目录下是否存在同名的源文件夹,不存在创建,存在返回false
$dest = $dest . DIRECTORY_SEPARATOR . basename($src);// b/a
if (is_dir($dest)) {
return false;
} else {
mkdir($dest, 755, true);
}
if ($handle = opendir($src)) {
while (($item = readdir($handle)) !== false) {
if ($item != '.' && $item != '..') {
$srcName = $src . DIRECTORY_SEPARATOR . $item;
$destName = $dest . DIRECTORY_SEPARATOR . $item;
if (is_file($srcName)) {
copy($srcName, $destName);
}else{
$func = __FUNCTION__;
$func($srcName, $destName);
}
}
}
closedir($handle);
return true;
} else {
return false;
}
}
var_dump(copy_dir1('../../image', '.'));
路径啥的都没问题 我都打印看了
正在回答
同学你好,建议同学在循环中添加一个@,代码如下所示:

注:@是为了抑制错误显示,让用户看不到,提升用户体验。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星