是否可以从 ftp 获取数据作为字符串?我想通过创建图像imagecreatefromstring
,但没有找到它的任何 ftp 功能。我需要它,因为我担心可以上传第三方 php 代码而不是图像。
问问题
2408 次
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_fget
php.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 回答