M Fayyaz
M Fayyaz

Reputation: 141

Call to undefined function readline()?

I am integrating Dropbox into my PHP based website. When i try to run the following code. i got this Fatal error: Call to undefined function readline() on the last line.

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: "));

I have come through different forum where people said it will work in Command line , But I don't understand how? Any idea ?

Upvotes: 12

Views: 16642

Answers (3)

David
David

Reputation: 383

readline() is for running on the command line not via the web browser.

To check you have it installed on your server, type:

php -i | grep Configure

Probably, you have not installed it and you should compile it yourself or ask your hosting admin to if they allow this.

Upvotes: 5

Chris Gibb
Chris Gibb

Reputation: 885

Or just use this to simulate it

if(!function_exists("readline")) {
    function readline($prompt = null){
        if($prompt){
            echo $prompt;
        }
        $fp = fopen("php://stdin","r");
        $line = rtrim(fgets($fp, 1024));
        return $line;
    }
}

Upvotes: 24

bcmcfc
bcmcfc

Reputation: 26765

Just had this issue on Ubuntu.

Found this answer: https://askubuntu.com/a/264329/166

The solution in this scenario was to install the package php5-readline.

Upvotes: 4

Related Questions