从ftp获取数据作为字符串

时间:2012-09-03 13:37:59

标签: php ftp gd

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

2 个答案:

答案 0 :(得分:2)

您可以使用以下代码通过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_connect返回的FTP连接资源。

免责声明:代码不是我的;它几乎逐字逐句地来自php.net的ftp_fget评论。

答案 1 :(得分:0)

另一种方法是将php://outputoutput buffering一起使用:

/**
 * @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;
}