Для моего веб-сайта мне нужно скопировать одну папку из основной учетной записи на моем VPS в (автоматически) новую созданную учетную запись cPanel. Я пытался сделать это с помощью PHP, через FTP, используя следующий код (функция):PHP каталог копирования FTP рекурсивный
function ftp_sync ($dir) {
global $conn_id;
if ($dir != ".") {
if (ftp_chdir($conn_id, $dir) == false) {
echo ("Change Dir Failed: $dir<BR>\r\n");
return;
}
if (!(is_dir($dir)))
mkdir($dir);
chdir ($dir);
}
$contents = ftp_nlist($conn_id, ".");
foreach ($contents as $file) {
if ($file == '.' || $file == '..')
continue;
if (@ftp_chdir($conn_id, $file)) {
ftp_chdir ($conn_id, "..");
ftp_sync ($file);
}
else
ftp_get($conn_id, $file, $file, FTP_BINARY);
}
}
foreach (glob("*") as $file)
{
if(substr_count($file, ".") > 0)
{
$source_file = $file;
$destination_file = $file;
$upload = ftp_put($conn_id, "public_html/".$destination_file, $source_file, FTP_BINARY);
echo "<br />";
// check upload status
if (!$upload) {
echo "FTP upload has failed!";
} else {
echo "Uploaded $source_file to $ftp_server as $destination_file";
}
}else{
ftp_sync($dir);
}
}
ftp_chdir ($conn_id, "..");
chdir ("..");
}
Однако это не похоже на работу (нет новых каталогов не будут созданы и загружены) ... Кто-нибудь знает, почему это не работает и как я могу заставить его работать?
Заранее благодарен!
С наилучшими пожеланиями, Skyfe.
EDIT: Я забыл упомянуть, что я запускаю сценарий как скрипт cronjob, также убедившись, что он имеет все права, поскольку он выполняется с основного сервера.
Благодарим за сообщение, однако ошибка оказалась проблемой хоста/сервера (в конфигурации php.ini), которую они исправили для меня сейчас. Однако chmodding не проблема, но я сделал свою собственную функцию для загрузки файлов рекурсивных файлов ftp и заставил их работать! – Skyfe