<?PHP
// Think about shell-command escaping if you`re using user-input
function php_check_syntax($file,&$error) {
exec("php -l $file",$error,$code);
if($code==0)
return true;
return false;
}
?>
Note: This is UNIX
Note: If your environment-variable PATH is not set correctly, you will need to insert the path to php (like /usr/local/bin/php)
php_check_syntax
(PHP 5 <= 5.0.4)
php_check_syntax — Check the PHP syntax of (and execute) the specified file
Description
$filename
[, string &$error_message
] )
Performs a syntax (lint) check on the specified
filename testing for scripting errors.
This is similar to using php -l from the commandline except that this
function will execute (but not output) the checked
filename.
For example, if a function is defined in filename,
this defined function will be available to the file that executed
php_check_syntax(), but output from
filename will be suppressed.
Note:
For technical reasons, this function is deprecated and removed from PHP. Instead, use php -l somefile.php from the commandline.
Parameters
-
filename -
The name of the file being checked.
-
error_message -
If the
error_messageparameter is used, it will contain the error message generated by the syntax check.error_messageis passed by reference.
Return Values
Returns TRUE if the lint check passed, and FALSE if the link check
failed or if filename cannot be opened.
Changelog
| Version | Description |
|---|---|
| 5.0.5 | This function was removed from PHP. |
| 5.0.3 | Calling exit() after php_check_syntax() resulted in a Segfault. |
| 5.0.1 |
error_message is passed by reference.
|
Examples
php -l somefile.php
The above example will output something similar to:
PHP Parse error: unexpected T_STRING in /tmp/somefile.php on line 81
php_check_syntax
25-Mar-2007 12:42
16-Feb-2005 05:38
PROBLEM: Your page is blank, or you can not define any functions in an include.
As mentioned below, the php_check_syntax function will include your file. So you may not be able to include it again. If you have an include later in your code, and you define any functions, you will get an error, or in some cases a blank page.