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

2006-06-28 Thread weston
On Mon, Jun 26, 2006 at 01:53:31PM +1000, David Tulloh wrote:

 [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
  
  However, I just recently tried to use this with PHP 5.1.2, and found that 
  it doesn't work. 
 
 Works for me, PHP 5.1.4.  Perhaps 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.

Thank you! It is apparently exactly as you say. :) Adding a -n makes it run 
just fine.

 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.

Makes sense. Thanks again!

-WEston

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



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

2006-06-25 Thread David Tulloh
[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