FTP_RENAMEは、FTPサーバーでファイルまたはディレクトリを変更するPHPに組み込み機能です。基本的な構文は次のとおりです。
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">ftp_rename</span></span><span> ( resource </span><span><span class="hljs-variable">$ftp_stream</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$from</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$to</span></span><span> )
</span></span>$ ftp_stream :ftp接続のリソースハンドルは、 ftp_connectやftp_ssl_connectなどの関数を介して確立されたFTP接続でなければなりません。
$ from :変更する元のファイルまたはディレクトリへのパス。
$ to :新しいファイルまたはディレクトリへのパス、つまり名前が変更された名前。
この関数は、名前変更操作が成功した場合にtrueを返し、操作が失敗した場合にfalseを返します。
まず、 FTP_Connect関数を介してFTPサーバーへの接続を確立する必要があります。 FTPサーバーに認証が必要な場合は、 FTP_LOGIN関数を使用してログインする必要があります。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$ftp_server</span></span><span> = </span><span><span class="hljs-string">"ftp.example.com"</span></span><span>;
</span><span><span class="hljs-variable">$ftp_username</span></span><span> = </span><span><span class="hljs-string">"username"</span></span><span>;
</span><span><span class="hljs-variable">$ftp_password</span></span><span> = </span><span><span class="hljs-string">"password"</span></span><span>;
</span><span><span class="hljs-comment">// 確立するFTP接続する</span></span><span>
</span><span><span class="hljs-variable">$ftp_conn</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ftp_connect</span></span><span>(</span><span><span class="hljs-variable">$ftp_server</span></span><span>) </span><span><span class="hljs-keyword">or</span></span><span> </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"无法接続する到FTPサーバ"</span></span><span>);
</span><span><span class="hljs-comment">// ログインFTPサーバ</span></span><span>
</span><span><span class="hljs-variable">$login</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ftp_login</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-variable">$ftp_username</span></span><span>, </span><span><span class="hljs-variable">$ftp_password</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$login</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"ログインに失敗しました。"</span></span><span>);
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>FTP_RENAME関数を使用して、FTPサーバーのディレクトリの名前を変更します。 /old_directoryに/new_directoryに名前を変更する必要があると仮定すると、次のコードで実装できます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$old_dir</span></span><span> = </span><span><span class="hljs-string">"/old_directory"</span></span><span>;
</span><span><span class="hljs-variable">$new_dir</span></span><span> = </span><span><span class="hljs-string">"/new_directory"</span></span><span>;
</span><span><span class="hljs-comment">// ディレクトリの名前を変更します</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">ftp_rename</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-variable">$old_dir</span></span><span>, </span><span><span class="hljs-variable">$new_dir</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ディレクトリの名前変更に正常に変更されます!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ディレクトリの名前変更に失敗しました!"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ディレクトリの名前変更操作を完了した後、FTPサーバーへの接続を閉じ、リソースをリリースする必要があります。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 閉鎖FTP接続する</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ftp_close</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>FTP_RENAME関数を使用するときに注意を払うべきことがいくつかあります。
FTPアカウントに、名前の操作を実行するときにディレクトリ名を変更するのに十分な権限があることを確認してください。 FTPアカウントに対応する権限がない場合、 FTP_RENAMEは正常に実行されません。
FTP_RENAME関数は、ソースディレクトリが存在するかどうかを確認しません。指定されたソースディレクトリが存在しないか、パスが正しくない場合、操作は失敗します。これを回避するために、 FTP_CHDIRまたはFTP_NLISTを使用して、ソースディレクトリが存在するかどうかを確認できます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">ftp_chdir</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-variable">$old_dir</span></span><span>)) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">ftp_rename</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-variable">$old_dir</span></span><span>, </span><span><span class="hljs-variable">$new_dir</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ディレクトリの名前変更に正常に変更されます!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ディレクトリの名前変更に失敗しました!"</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ソースディレクトリは存在しません!"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>FTP_RENAMEで指定されたパスは、FTPルートディレクトリのパスに関連するため、パスの正しさを確保する必要があります。ルートディレクトリのディレクトリまたはファイルの名前を変更する必要がある場合は、ディレクトリ名を直接使用できます。サブディレクトリの場合、完全な相対パスを含める必要があります。
関連タグ:
FTP