Php 以字符串形式从ftp获取数据
是否可以从ftp获取字符串形式的数据?我想通过Php 以字符串形式从ftp获取数据,php,ftp,gd,Php,Ftp,Gd,是否可以从ftp获取字符串形式的数据?我想通过imagecreatefromstring创建图像,但找不到它的任何ftp功能。我需要它,因为我担心可能会上载第三方php代码而不是图像。您可以使用以下代码通过FTP以字符串形式获取文件内容: function ftp_get_string($ftp, $filename) { $temp = fopen('php://temp', 'r+'); if (@ftp_fget($ftp, $temp, $filename, FTP_BI
imagecreatefromstring
创建图像,但找不到它的任何ftp功能。我需要它,因为我担心可能会上载第三方php代码而不是图像。您可以使用以下代码通过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连接资源
免责声明:代码不是我的;它几乎是从php.net的评论中一字不差地写出来的。另一种方法是使用:
@然后它会被下载到一个临时文件中。您可以使用
php://memory
如果要避免这种情况,但如果文件足够大,则可能会出现内存不足的风险。
/**
* @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;
}