我有两台服务器。我要连接的文件中已经有一个.txt文件。

我需要获取.txt文件的内容并将其放入$变量中。这是我的代码
不起作用:

$ftp_server = $_POST["site"];
$path = $_POST["path"];
$ftp_user_name = $_POST["username"];
$ftp_user_pass = $_POST["pass"];

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

ftp_get($conn_id, $content,"/" . $_POST["path"] . "/" . "#" . $result["id"]
. " - " .    $result["LastName"] . ", " . $result["FirstName"] . "/" . $_POST["title"] . ".txt", FTP_ASCII);

这段代码连接到FTP,我使用ftp_get从一个文本文件复制到名为$ content的变量。我知道一个变量不属于该参数,但是我现在就卖掉了。我不知道如何读取此.txt文件。

有没有办法用PHP FTP函数来做到这一点?

谢谢

现在,当我尝试这样做时:
$fileContents = file_get_contents('ftp://username:pa‌​ssword@hostname/path/to/file');

它给出一个550错误,表明.txt文件不是常规文件。为什么会出现此错误?

再次感谢

这是我得到的官方错误:

警告:fopen(ftp://...@goldenbooklet.com/101Notebook备份:22-08-2013/#11-Cappucci,Ryan/queen.txt)[function.fopen]:无法打开流:FTP服务器报告550/101Notebook备份:22-08-2013/:第269行的/home/content/34/11614434/html/adminpdo.php中不是常规文件

最佳答案

file_get_contents 是最简单的解决方案:

$contents = file_get_contents('ftp://username:pa‌​ssword@hostname/path/to/file');

如果不起作用,可能是因为您没有URL wrappers enabled in PHP

如果您需要更好地控制读数(传输模式,被动模式,偏移,读数限制等),请使用 ftp_fget php://temp (or the php://memory ) stream的句柄:
$conn_id = ftp_connect('hostname');

ftp_login($conn_id, 'username', 'password');

ftp_pasv($conn_id, true);

$h = fopen('php://temp', 'r+');

ftp_fget($conn_id, $h, '/path/to/file', FTP_BINARY, 0);

$fstats = fstat($h);
fseek($h, 0);
$contents = fread($h, $fstats['size']);

fclose($h);
ftp_close($conn_id);

(添加错误处理)

关于PHP:如何将FTP服务器中的.txt文件读入变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18392321/

10-11 22:59
查看更多