用PHP将Dropbox文件内容存储到变量中

用PHP将Dropbox文件内容存储到变量中,php,dropbox-api,Php,Dropbox Api,我需要你的帮助,因为我陷入困境,谷歌没有提供任何解决方案。我试图通过官方的Dropbox API读取.txt文件的内容。到目前为止还不错,但在我看来并不漂亮。必须有一种简单的方法将文件内容直接存储到数组/字符串变量中 到目前为止,我得到的是一个在Web服务器上使用临时文件的解决方案: $tempFile = fopen("tempOnWebserver.txt", "w+"); $fileMetadata = $dbxClient->getFile("/someFileOnDropbox.

我需要你的帮助,因为我陷入困境,谷歌没有提供任何解决方案。我试图通过官方的Dropbox API读取.txt文件的内容。到目前为止还不错,但在我看来并不漂亮。必须有一种简单的方法将文件内容直接存储到数组/字符串变量中

到目前为止,我得到的是一个在Web服务器上使用临时文件的解决方案:

$tempFile = fopen("tempOnWebserver.txt", "w+");
$fileMetadata = $dbxClient->getFile("/someFileOnDropbox.txt", $tempFile);
fclose($tempFile);
$fileContent = file_get_contents("tempOnWebserver.txt");
因此,我只想编写
$dbxClient->getFile(“/someFileOnDropbox.txt”,“$fileContent”)
并跳过解决方法,但这当然是不可能的(:有什么方法可以得到它吗


有关Dropbox getFile函数,请参阅。

您可以使用以下命令执行此操作,而无需实际写入文件:

这并不能真正简化您的程序,但至少可以在不在服务器上编写任何实际文件的情况下进行


您还可以扩展Dropbox
Client
类来封装此功能:

class YourClient extends \Dropbox\Client
{
    public function getFileContents($filename)
    {
        $stream = fopen('php://memory', 'r+');
        $this->getFile("/someFileOnDropbox.txt", $stream);
        rewind($stream);
        $fileContents = stream_get_contents($stream);
        fclose($stream);
        return $fileContents;
    }
}

我看不到任何其他方式,因为Dropbox SDK除了向文件写入之外没有提供任何其他功能。该函数正在向
resource
类型的内容写入(通常是文件)。难道没有机会创建这种类型的变量吗?ressource是一个引用外部ressource的特殊变量。所以没有,没有机会。太糟糕了:/谢谢!这就是我一直在寻找的:)我会尝试制作一个报告。我必须通过构造函数更改类,但现在它工作起来很有魅力!添加了
公共函数uu构造($accessToken){parent::u构造($accessToken,“ClientIdentifier”);}
class YourClient extends \Dropbox\Client
{
    public function getFileContents($filename)
    {
        $stream = fopen('php://memory', 'r+');
        $this->getFile("/someFileOnDropbox.txt", $stream);
        rewind($stream);
        $fileContents = stream_get_contents($stream);
        fclose($stream);
        return $fileContents;
    }
}