|
php_check_syntax
Check the PHP syntax of (and execute) the specified file
(PHP 5 <= 5.0.4)
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 Parameters
Return Values
Returns ChangeLog
Examplesphp -l somefile.php The above example will output something similar to: PHP Parse error: unexpected T_STRING in /tmp/somefile.php on line 81
See Also
Code Examples / Notes » php_check_syntaxnicolas dot grekas+php
This detects parse errors without executing the code: <?php function eval_syntax($code) { $b = 0; foreach (token_get_all($code) as $token) { if ('{' == $token) ++$b; else if ('}' == $token) --$b; } if ($b) return false; // Unbalanced braces would break the eval below else { ob_start(); // Catch potential parse error messages $code = eval('if(0){' . $code . '}'); // Put $code in a dead code sandbox to prevent its execution ob_end_clean(); return false !== $code; } } ?> phpdoc
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. quis
<?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) |