<?
ftp_raw($ftpconn,"CLNT <client>");
?>
这是一个让 FTP 服务器知道它正在处理哪个客户端的好方法。猜测这在你制作自制 FTP 客户端时可能很有用。只有在 FTP 服务器对 FEAT 命令的响应中包含 CLNT 时才执行此操作。
(PHP 5, PHP 7, PHP 8)
ftp_raw — 向 FTP 服务器发送任意命令
返回服务器的响应作为字符串数组,如果失败则返回 null
。对响应字符串不进行解析,ftp_raw() 也不会确定命令是否成功。
版本 | 描述 |
---|---|
8.1.0 | ftp 参数现在需要一个 FTP\Connection 实例;之前需要一个 资源。 |
范例 #1 使用 ftp_raw() 手动登录到 FTP 服务器。
<?php
$ftp = ftp_connect("ftp.example.com");
/* 这与以下代码相同:
ftp_login($ftp, "joeblow", "secret"); */
ftp_raw($ftp, "USER joeblow");
ftp_raw($ftp, "PASS secret");
?>
<?
ftp_raw($ftpconn,"CLNT <client>");
?>
这是一个让 FTP 服务器知道它正在处理哪个客户端的好方法。猜测这在你制作自制 FTP 客户端时可能很有用。只有在 FTP 服务器对 FEAT 命令的响应中包含 CLNT 时才执行此操作。
请注意,$command 不能包含任何非法字符,例如 \n、\r、\t,否则此函数将返回 NULL。
尝试在调用 ftp_raw() 之前使用 trim()。
<?php
ftp_raw($connid, trim($command));
?>
如何实现通过 FXP 从一个 FTP 服务器传输数据到另一个 FTP 服务器的功能?
<?php
// ...
$ansver = ftp_raw($ftp_conn1, 'PASV');
if (intval($ansver[0]) == 227) {
ftp_raw($ftp_conn2, 'PORT '.substr($ansver[0], $n = strpos($ansver[0], '(') + 1, strpos($m[0], ')', $n) - $n));
ftp_raw($ftp_conn1, 'STOR '.$filename); // 需要异步 (非阻塞)
ftp_raw($ftp_conn2, 'RETR '.$filename);
}
?>