PHP Copy:没有这样的文件或目录

时间:2017-05-21 22:37:03

标签: php copy

首先:我已经搜索了这个,但所有答案似乎都是'你确定路径存在吗?'或者“路径是否获得了正确的权限?” - 我100%肯定他们这样做,尤其是因为同一文件中的代码的不同部分设法写入指定目录。

那么:为什么这个非常简单的PHP不能正常工作?

copy("/var/www/html/log16-1/0049_2016_07_27_08_00_08.mp3", "~/temp/xra231y.mp3");

导致错误:

copy(~/temp/xra231y.mp3): failed to open stream: No such file or directory

我再说一遍:路径确实存在,它确实具有正确的写入权限(此脚本是从CLI加载的),同一文件中另一部分代码设法写入此目录,完全没有问题(分开)从速度,但然后它再次加入MP3文件!)。

我甚至尝试使用不同的引号(我倾向于使用单引号而不是通常使用单引号),因为我知道如果这会产生问题,它们会略有不同,但无济于事。

1 个答案:

答案 0 :(得分:0)

尝试使用/home//temp/xra231y.mp3,因为php不会自动扩展路径中的“〜”。如果您需要为普通用户扩展代字号,请使用以下内容:

function expand_tilde($path)
{
    if (function_exists('posix_getuid') && strpos($path, '~') !== false) {
        $info = posix_getpwuid(posix_getuid());
        $path = str_replace('~', $info['dir'], $path);
    }

    return $path;
}

source