Re: CLI - php shell script worked under php4, breaks under php5

From: Date: Mon, 26 Jun 2006 03:53:31 +0000
Subject: Re: CLI - php shell script worked under php4, breaks under php5
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-238606@lists.php.net to get a copy of this message
weston@leary2.csoft.net wrote: > A while back I wrote a little read-eval-print loop that essentially constituted a very basic > php shell: > > http://weston.canncentral.org/misc/phpsh.txt > > This has almost always run fine for me with the cgi versions of php 4, and often proves to be a > great help in quickly testing various snippets of code. > > However, I just recently tried to use this with PHP 5.1.2, and found that it doesn't work. > Specifically, it seems to wait for input to be typed without issuing a prompt. Upon entering a line, > there's no response, until one presses ctrl-d. At this point, it throws a parse error: > > syntax error, unexpected ')' in phpsh5(23): eval()'d code on line 1 > > regardless of whether or not there are in fact any unmatched parenths (or any parenths at all) > on the entered line. And it apparently doesn't execute any of the code at all until one enters > "exit" as a command. > > I've tried switching from /dev/stdin to php://stdin, tried adding -f or -a to the > processing options.... nothing seems to make a difference. I also tried removing my > "_readln()" function, and simple entering a default expression. This produces the expected > (if repetetive and ultimately practically useless) results, so I assume it's something in my > _readln() function that throws it off. > > Any ideas how to get this to work with PHP 5? > Works for me, PHP 5.1.4. Prehaps you have some kind of output buffering enabled. Using the -n command line switch will disable your php.ini which should stop anything like that. The syntax error you are getting is caused by not entering any input. Your line 23 becomes: $returnval = eval("return();"); Return expects some value to be provided, hence the syntax error. David

« previous php.general (#238606) next »