PHP:如何将FTP服务器中的.txt文件读入变量?

PHP:如何将FTP服务器中的.txt文件读入变量?,php,ftp,Php,Ftp,我有两台服务器。我正在连接的文件中已经有一个.txt文件 我需要获取.txt文件内容并将其放入$variable中。这是我的代码 不起作用: $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

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

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

$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将一个文本文件复制到一个名为$content的变量。我知道一个变量不属于这个参数,但我现在被说服了。我不知道如何读取这个.txt文件

有没有办法用PHP FTP函数实现这一点

谢谢

现在,当我尝试这个:

$fileContents = file_get_contents('ftp://username:pa‌​ssword@hostname/path/to/file');
它给出一个550错误,表示.txt文件不是常规文件。为什么我会犯这个错误

再次感谢

以下是我得到的官方错误:


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



如果出现错误,请将文件权限更改为777或775。希望这能有所帮助。

如果您已经通过ftp\u connect打开了连接,这可能是最好的答案:

ob_start();
$result = ftp_get($conn_id, "php://output", $file, FTP_BINARY);
$data = ob_get_contents();
ob_end_clean();
最简单的解决方案是:

$contents = file_get_contents('ftp://username:pa‌​ssword@hostname/path/to/file');
如果它不起作用,可能是因为你没有


如果需要更好地控制读数(传输模式、被动模式、偏移、读数限制等),请使用带手柄的:


(添加错误处理)

我尝试此操作时仍会出错。我发布了上面的错误。上面的代码可以与普通的.txt文件一起使用。您将要读取的文件是否可能不是文件(根据您的链接,它看起来像您正在尝试读取文件夹),或者可能是.php或.aspx文件?如果是这样的话,你就不能得到这个.php文件。是的,它是一个txt文件,但是由于某种原因,无论我怎么尝试,我仍然会得到错误。请阅读这篇文章>>它是关于错误550的。这可能不是编码问题。您出现此错误是因为您试图从流中读取数据,并且当数据包可用时,读取将停止。请注意,数据流是以数据包的形式发送的。要做到这一点,您需要以下信息:
正确答案!
$contents = file_get_contents('ftp://username:pa‌​ssword@hostname/path/to/file');
$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);