[EMAIL PROTECTED] 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

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to