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