要发送SITE命令并获取结果,您可以尝试此方法
<?php
function ftpsite($conn, $cmd) {
return ftp_raw($conn, "SITE $cmd");
}
?>
(PHP 4, PHP 5, PHP 7, PHP 8)
ftp_site — 向服务器发送SITE命令
ftp_site() 向FTP服务器发送给定的SITE
命令。
SITE
命令没有标准化,因服务器而异。它们可用于处理文件权限和组成员资格等方面。
版本 | 描述 |
---|---|
8.1.0 | ftp 参数现在需要一个FTP\Connection实例;以前需要一个资源。 |
示例 #1 向ftp服务器发送SITE命令
<?php
// 连接到FTP服务器
$ftp = ftp_connect('ftp.example.com');
if (!$ftp) die('无法连接到ftp.example.com');
// 以用户名“user”和密码“pass”登录
if (!ftp_login($ftp, 'user', 'pass')) die('登录ftp.example.com错误');
// 向ftp服务器发出“SITE CHMOD 0600 /home/user/privatefile”命令
if (ftp_site($ftp, 'CHMOD 0600 /home/user/privatefile')) {
echo "命令执行成功。\n";
} else {
die('命令失败。');
}
?>
要发送SITE命令并获取结果,您可以尝试此方法
<?php
function ftpsite($conn, $cmd) {
return ftp_raw($conn, "SITE $cmd");
}
?>
嗨,
最近我必须使用PHP处理FTP,由于我没有找到关于此主题的任何帮助,所以我决定在这里发布。如果您需要更改一个文件权限,我在使用FTP客户端的FTP服务器上测试了这一点,在我知道FTP服务器支持chmod后,我使用了以下命令
$upload = ftp_put($conn_id, "/home/to/public_html/index.php", $source_file, FTP_ASCII);
$ch=@ftp_site($conn_id,"chmod 755 /home/to/public_html/index.php");
希望这有帮助!
T?
site 命令是由某些 ftp 服务器提供的额外功能,并且取决于服务器
例如,在 proftp 服务器上尝试“ftp> site help”(使用交互式 ftp 客户端)将给出
214-识别以下SITE扩展
RATIO -- 显示所有有效的比率
识别以下SITE命令(* =>'s 未实现)。
HELP CHMOD
214 直接评论发送至 [email protected]
而使用 wu-ftpd 可以通常获得
214-识别以下SITE命令(* =>'s 未实现)。
UMASK GROUP INDEX GROUPS
IDLE GPASS EXEC CHECKMETHOD
CHMOD NEWER ALIAS CHECKSUM
HELP MINFO CDPATH
214 blabla
不幸的是,ftp_site 仅返回 true 或 false。能够完整获取服务器回复的方法会更好:ftp_site('help') 返回 1,这几乎没用。
希望有帮助,
Ivan
我想跟进 Ivan 的观察。除非我遗漏了明显之处,当然这完全有可能,否则除非此命令返回 SITE <foo> 请求中的数据,否则此命令毫无用处。
除了明显的 SITE HELP 命令外,另一个需要捕获反馈的命令是 SITE LOCATE | SITE SEARCH 命令。我完全承认 SITE <foo> 命令确实非常专有,但事实仍然是,将其更改为返回结果,或者至少可以选择这样做(例如 exec() 等),将远远优于当前返回 true/false 值的方法。
谢谢。
我为名为 GuildFTPd 的 Windows FTP 服务器编写了一些函数。
它们在这里,它们几乎不言自明
<?
function guildftpd_adduser($ftp_stream,$group,$username,$password){
ftp_site($ftp_stream,"SITE ADDUSER $group $username $password");
}
function guildftpd_addgroup($ftp_stream,$groupname){
ftp_site($ftp_stream,"SITE ADDGROUP $groupname");
}
function guildftpd_deluser($ftp_stream,$username){
ftp_site($ftp_stream,"SITE DELUSER $username");
}
function guildftpd_addpath($ftp_stream,$username,$path,$vpath){
ftp_site($ftp_stream,"SITE ADDPATH $username $path $vpath");
}
function guildftpd_delpath($ftp_stream,$username,$path,$vpath){
ftp_site($ftp_stream,"SITE DELPATH $username $path $vpath");
}
function guildftpd_anon($ftp_stream){
ftp_site($ftp_stream,"SITE ANON ALLOW");
}
function guildftpd_anond($ftp_stream){
ftp_site($ftp_stream,"SITE ANON DENY");
}
function guildftpd_chpass($ftp_stream,$user,$pass){
ftp_site($ftp_stream,"SITE CHPASS $user $pass");
}
function guildftpd_disable($ftp_stream,$user){
ftp_site($ftp_stream,"SITE DISABLE $user");
}
function guildftpd_enable($ftp_stream,$user){
ftp_site($ftp_stream,"SITE ENABLE $user");
}
function guildftpd_who($ftp_stream){
$who = ftp_site($ftp_stream,"SITE WHO");
}
function guildftpd_kick($ftp_stream,$user);
ftp_site($ftp_stream,"SITE KICK $user");
}
function guildftpd_msg($ftp_stream,$text);
ftp_site($ftp_stream,"SITE MSG $text");
}
?>