<?
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);
}
?>