是否可以将ftp中的数据作为字符串获取?我想通过imagecreatefromstring
创建图像,但没有找到它的任何ftp功能。我需要它,因为我担心可以上传第三方PHP代码而不是图像。
答案 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://output
与output 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;
}