ftp_raw

(PHP 5, PHP 7, PHP 8)

ftp_raw向 FTP 服务器发送任意命令

描述

ftp_raw(FTP\Connection $ftp, string $command): ?array

向 FTP 服务器发送任意 command

参数

ftp

一个 FTP\Connection 实例。

command

要执行的命令。

返回值

返回服务器的响应作为字符串数组,如果失败则返回 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_exec() - 请求在 FTP 服务器上执行命令

添加注释

用户贡献的注释 3 个注释

nightwalker85 at gmail dot com
19 年前
<?
ftp_raw($ftpconn,"CLNT <client>");
?>

这是一个让 FTP 服务器知道它正在处理哪个客户端的好方法。猜测这在你制作自制 FTP 客户端时可能很有用。只有在 FTP 服务器对 FEAT 命令的响应中包含 CLNT 时才执行此操作。
www.bossftp.com
15 年前
请注意,$command 不能包含任何非法字符,例如 \n、\r、\t,否则此函数将返回 NULL。

尝试在调用 ftp_raw() 之前使用 trim()。

<?php
ftp_raw
($connid, trim($command));
?>
WebSee.ru
15 年前
如何实现通过 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);
}
?>
To Top