gpt4 book ai didi

php - 通过 FTP/PHP 下载每次都停止在同一位置

转载 作者:行者123 更新时间:2023-11-29 23:12:06 30 4
gpt4 key购买 nike

我有一个 PHP 脚本,可以通过 FTP 连接到远程服务器,以递归方式下载所有内容并将文件添加到 MySQL 数据库。

我遇到的问题是它总是在不同的时间后停止。它们是通话录音,所以数量很多。文件夹结构看起来有点像这样:

|/
|¬merged
|¬20150105
|¬Time-20150105-091444-From-2244605-To-2244615.wav
|¬20150106
|¬Time-20150105-091444-From-1234567-To-1236547.wav

依此类推...(显然每个文件中有多个文件...)

这是 FTP 脚本:

<?php
include('../includes/init.php');
$ftp_server = "ftp1.FTPSERVER.com";
$conn_id = ftp_connect ($ftp_server)
or die("Couldn't connect to $ftp_server");

$login_result = ftp_login($conn_id, "USER", "PASSWD");
if ((!$conn_id) || (!$login_result))
die("FTP Connection Failed");

ftp_pasv($conn_id, false);

ftp_sync ("."); // Use "." if you are in the current directory

ftp_close($conn_id);

// ftp_sync - Copy directory and file structure
function ftp_sync ($dir) {

global $conn_id, $core;

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);
$core->addFile('3', $file);
}

ftp_chdir ($conn_id, "..");
chdir ("..");

}
?>

我通过 shell 运行此脚本以避免 PHP 的最大执行时间。

addFile 函数只是读取文件名并将其放置在数据库中的新行上。

如果有帮助,CLI 会输出此...

Warning: ftp_get(): 1.763 seconds (measured here), 2.57 Mbytes per second in /home/user/web/domain.com/public_html/test/ftp.php on line 43PHP Warning: ftp_get(): 1.763 seconds (measured here), 2.57 Mbytes per second in /home/user/web/domain.com/public_html/test/ftp.php on line 43

Warning: ftp_get(): 1.763 seconds (measured here), 2.57 Mbytes per second in /home/user/web/domain.com/public_html/test/ftp.php on line 43PHP Warning: ftp_chdir(): 1.763 seconds (measured here), 2.57 Mbytes per second in /home/user/web/domain.com/public_html/test/ftp.php on line 47

非常感谢任何帮助。

最佳答案

增加 php.ini 文件中的脚本执行时间。这可能会解决您的问题。或者第 220 个文件上的文件名可能存在一些错误,导致脚本停止执行。或者增加内存限制

ini_set('memory_limit','1024M');

关于php - 通过 FTP/PHP 下载每次都停止在同一位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28021114/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com