php_eval
function php_eval
php_eval($code)
Evaluates a string of PHP code.
This is a wrapper around PHP's eval(). It uses output buffering to capture both returned and printed text. Unlike eval(), we require code to be surrounded by <?php ?> tags; in other words, we evaluate the code as if it were a stand-alone PHP file.
Using this wrapper also ensures that the PHP code which is evaluated can not overwrite any variables in the calling code, unlike a regular eval() call.
This function is also used as an implementation of callback_filter_process().
Parameters
$code: The code to evaluate.
Return value
A string containing the printed output of the code, followed by the returned output of the code.
See also
Related topics
File
- modules/php/php.module, line 63
- Additional filter for PHP input.
Code
function php_eval($code) { global $theme_path, $theme_info, $conf; // Store current theme path. $old_theme_path = $theme_path; // Restore theme_path to the theme, as long as php_eval() executes, // so code evaluated will not see the caller module as the current theme. // If theme info is not initialized get the path from theme_default. if (!isset($theme_info)) { $theme_path = drupal_get_path('theme', $conf['theme_default']); } else { $theme_path = dirname($theme_info->filename); } ob_start(); print eval('?>' . $code); $output = ob_get_contents(); ob_end_clean(); // Recover original theme path. $theme_path = $old_theme_path; return $output; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!php!php.module/function/php_eval/7.x