9

我正在将 Dropbox 集成到我的基于 PHP 的网站中。当我尝试运行以下代码时。我收到了这个致命错误:在最后一行调用未定义的函数 readline()

require_once "dropbox-sdk/Dropbox/autoload.php";
use \Dropbox as dbx;
$appInfo = dbx\AppInfo::loadFromJsonFile("app-info.json");

echo "<pre>";
print_r($appInfo);
echo "</pre>";

$webAuth = new dbx\WebAuthNoRedirect($appInfo, "PHP-Example/1.0");

echo "<pre>";
print_r($webAuth);
echo "</pre>";

$authorizeUrl = $webAuth->start();
echo "1. Go to: " . $authorizeUrl . "\n<br>";
echo "2. Click \"Allow\" (you might have to log in first).\n<br>";
echo "3. Copy the authorization code.\n<br>";
$authCode = \trim(\readline("Enter the authorization code here: "));

我已经通过不同的论坛,人们说它将在命令行中工作,但我不明白如何?任何想法 ?

4

3 回答 3

21

或者只是用它来模拟它

if(!function_exists("readline")) {
    function readline($prompt = null){
        if($prompt){
            echo $prompt;
        }
        $fp = fopen("php://stdin","r");
        $line = rtrim(fgets($fp, 1024));
        return $line;
    }
}
于 2014-08-16T13:48:44.120 回答
4

readline()用于在命令行上运行,而不是通过 Web 浏览器。

要检查您是否已在服务器上安装它,请键入:

php -i | grep Configure

可能,您还没有安装它,您应该自己编译它或询问您的托管管理员是否允许这样做。

于 2014-04-25T02:51:16.177 回答
3

刚刚在 Ubuntu 上遇到了这个问题。

找到了这个答案:https ://askubuntu.com/a/264329/166

这种情况下的解决方案是安装包php5-readline

于 2015-07-13T10:25:12.960 回答