2

是否可以从 ftp 获取数据作为字符串?我想通过创建图像imagecreatefromstring,但没有找到它的任何 ftp 功能。我需要它,因为我担心可以上传第三方 php 代码而不是图像。

4

2 回答 2

3

您可以使用以下代码通过 FTP 以字符串形式获取文件的内容:

function ftp_get_string($ftp, $filename) {
    $temp = fopen('php://temp', 'r+');
    if (@ftp_fget($ftp, $temp, $filename, FTP_BINARY, 0)) {
        rewind($temp);
        return stream_get_contents($temp);
    }
    else {
        return false;
    } 
}

$ftp将是由 . 返回的 FTP 连接资源ftp_connect

免责声明:代码不是我的;它几乎是从ftp_fgetphp.net 的评论中逐字记录的。

于 2012-09-03T13:45:56.563 回答
1

另一种方法是使用php://output输出缓冲

/**
 * @param $ftp ftp connexion id
 * @param $filename distant file name
 * @return a string with file content or FALSE
 */ 
function ftp_get_string($ftp, $filename) {
    ob_start();
    $result = ftp_get($ftp, "php://output", $filename, FTP_BINARY);
    $data = ob_get_contents();
    ob_end_clean();
    return $result === FALSE ? false : $data;
}
于 2016-02-05T14:48:32.833 回答