パソコンQ&A

PHPのFTP関数まとめ

PHPファイルがある場所とFTPサーバーが同じ場合、FTPサーバーに接続するときに次のようなエラーが出る。

Warning: ftp_login() expects parameter 1 to be resource, boolean given in 【PHPファイルのパス】 on line 【エラー行】


このときサーバー名を『127.0.0.1』にすると解決する。

PHPでFTPが使えるかどうかはphpinfo()で確認する。

ftp

FTP supportenabled

上でdisableとなっていた場合は--enable-ftpを付けてコンパイル、インストールをしなおす。

以下はFTP操作のまとめ
FTPサーバーに接続する

$ftp_server="【サーバー名】";
$ftp_user_name="【アカウント名】";
$ftp_user_pass="【パスワード】";

//サーバーに接続する
$conn_id = ftp_connect($ftp_server);

// ユーザ名とパスワードでログインする
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// 接続できたか確認する
if ((!$conn_id) || (!$login_result)) {
  echo "FTP接続に失敗しました。";
  exit;
} else {
  echo "FTP接続に成功しました。";
}


ファイルをアップロードする(テキストファイル、HTMLファイルなど)

$local_file="【ローカルのファイルパス】";
$remote_file="【FTPサーバー上のアップロードファイルパス】";

if (!ftp_put($conn_id, $remote_file, $local_file, FTP_ASCII)) {
  echo "FTPアップロードに失敗しました。";
  exit;
} else {
  echo "FTPアップロードに成功しました。";
}


ファイルをアップロードする(画像など)

$local_file="【ローカルのファイルパス】";
$remote_file="【FTPサーバー上のアップロードファイルパス】";

if (!ftp_put($conn_id, $remote_file, $local_file, FTP_BINARY)) {
  echo "FTPアップロードに失敗しました。";
  exit;
} else {
  echo "FTPアップロードに成功しました。";
}


パーミッションを変更する(例: 644 )

$remote_file="【FTPサーバー上のファイルパス】";

if (!ftp_chmod($conn_id, 0644, $remote_file)) {
  echo "FTPパーミッションの変更に失敗しました。";
} else {
  echo "FTPパーミッションの変更に成功しました。";
}


ファイルを削除する

$remote_file="【FTPサーバー上のファイルパス】";

if (!ftp_delete($conn_id, $remote_file)) {
  echo "FTPファイルの削除に失敗しました。";
  exit;
} else {
  echo "FTPファイルの削除に成功しました。";
}


接続を閉じる

ftp_close($conn_id);

このページはリンクフリーです。設定などは自己責任で…
Copy Right kikky

kikky.net