Edit report at https://bugs.php.net/bug.php?id=41810&edit=1

 ID:                 41810
 Updated by:         ras...@php.net
 Reported by:        d dot albano at gmail dot com
 Summary:            Unable to catch Parse Errors
 Status:             Not a bug
 Type:               Feature/Change Request
 Package:            *General Issues
 Operating System:   Linux
 PHP Version:        5.2.3
 Block user comment: N
 Private report:     N

 New Comment:

This can't be done safely within the same parser instance as your main script. 
You will need to create a separate instance, as in system("php -l $script"); to 
do that check. I would suggest you do this once when these scripts are created 
and move them into a "checked" directory or something so you don't do it on 
every 
include.


Previous Comments:
------------------------------------------------------------------------
[2012-09-15 20:53:11] james dot dobb at gmail dot com

I agree that this, perhaps not a bug but a missing feature needs to be 
addressed,  
There should be a secure way of including scripts from another script and be 
able 
to continue the calling script if an error occurs, the lack of functionality 
here 
is causing me a major headache.....

------------------------------------------------------------------------
[2010-07-02 13:41:24] paj...@php.net

It is not, please double read the manual about require/include_once.

------------------------------------------------------------------------
[2010-07-02 12:34:32] sneak at datavibe dot net

This classification is not bogus at all.  Consider the following:

== main.php ==

<?php

$filename = sprintf("%s.php", 'myfile' );
include_once($filename);

?>

== myfile.php ==

<?php

syntax errors here !@#$%^&*()_

?>



The parsing of myfile.php must necessarily happen at main.php's RUNTIME, 
because 
the filename is not available until sprintf() is called.

This is a bug.

------------------------------------------------------------------------
[2007-07-03 16:36:51] tony2...@php.net

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php



------------------------------------------------------------------------
[2007-07-03 16:29:58] d dot albano at gmail dot com

Looking to the code looks simply to do the modification, naturally, as you 
said, the problem is testing.

However i founded an eval behaviour to support my feature request: if there is 
a parse error execution continues

Can be that this is a bug or an unwanted behaviour, however nothing start to 
work strange after that a parse error was outputted.

So, if all works with eval why it shouldn't work correctly with normal parse 
errors?

Here there is some example code:
<?php

echo "BEGIN";

eval('echo "{$SYNTAX-ERROR"');

echo "END";

?>

It output
BEGIN
Parse error: syntax error, unexpected '-', expecting '}' in 
C:\web\htdocs\test.php(5) : eval()'d code on line 1
END

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=41810


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=41810&edit=1

Reply via email to