7

私は2つのサーバーを持っています。接続先のファイルには既に .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);

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

このコードは FTP に接続し、 を使用しftp_getて 1 つのテキスト ファイルから という変数にコピーしました$content。変数がこのパラメーターに属していないことはわかっていますが、今は売り切れです。この .txt ファイルの読み方がわかりません。

PHP FTP 関数でこれを行う方法はありますか?

今、私がこれを試すと:

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

エラーが発生します:

警告: fopen(ftp://...@goldenbooklet.com/101Notebook Backup: 22-08-2013/#11 - Cappucci, Ryan/queen.txt) [function.fopen]: ストリームを開けませんでした: FTP サーバー レポート550 /101Notebook Backup: 22-08-2013/: 269 行目の /home/content/34/11614434/html/adminpdo.php の通常のファイルではありません

このエラーが発生するのはなぜですか?

再度、感謝します

4

3 に答える 3

10

すでに ftp_connect 経由で接続を開いている場合は、これがおそらく最良の答えです。

ob_start();
$result = ftp_get($conn_id, "php://output", $file, FTP_BINARY);
$data = ob_get_contents();
ob_end_clean();
于 2016-08-10T14:11:17.697 に答える
9

これを試してみてください。このコードはhttp://www.php.net/manual/en/function.fread.phpからのものです

<?
$filename = "ftp://username:pa‌​ssword@hostname/path/to/file";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);

echo $contents;
?>

エラーが発生した場合は、ファイルのパーミッションを 777 または 775 に変更してください。

于 2013-08-23T01:27:01.773 に答える