我是php的初学者。我的问题是,我使用以下代码创建一个目录并将一些文件复制到其中(我使用的代码来自于此)。代码工作正常创建目录并复制文件。但我收到这样的警告。
function copyr($source, $dest)
{
// Simple copy for a file
if (is_file($source)) {
chmod($dest, 0777);
return copy($source, $dest);
}
// Make destination directory
if (!is_dir($dest)) {
mkdir($dest);
}
chmod($dest, 0777);
// Loop through the folder
$dir = dir($source);
while (false !== $entry = $dir->read()) {
// Skip pointers
if ($entry == '.' || $entry == '..') {
continue;
}
// Deep copy directories
if ($dest !== "$source/$entry") {
copyr("$source/$entry", "$dest/$entry");
}
}
// Clean up
$dir->close();
return true;
}
copyr("agentSourcefolder", "testTemp5");
Warning: chmod() [function.chmod]: No such file or directory in /home/websiteName/public_html/php_file_upload2.php on line 9
在此之后我必须得到服务器的响应,我该怎么办?我用了
header("Location: http://www.websiteName.com/");
但它显示以下错误
Warning: Cannot modify header information - headers already sent by (output started at /home/websiteName/public_html/php_file_upload2.php:9) in /home/websiteName/public_html/php_file_upload2.php on line 41
如果目录已经创建,则此代码可以正常运行
答案 0 :(得分:0)
这一个:
Warning: Cannot modify header information - headers already sent by (output started at /home/websiteName/public_html/php_file_upload2.php:9) in /home/websiteName/public_html/php_file_upload2.php on line 41
是因为在将任何内容写入屏幕后您正在传递header('location:')
调用。所有这些处理都应该在将任何内容写入页面之前完成,例如echo,break of php等。还要确保在开始<?php
行之前没有空格。
另一个错误可能是因为您尝试chmod的文件尚不存在或存在。或者您可能需要提供mkdir的绝对路径。比如$_SERVER['DOCUMENT_ROOT']."/path-to-new-dir/"