当我登录我的drupal页面时。它显示以下错误
Parse error: syntax error, unexpected '<' in /document_root/sites/all/modules/rules/rules/modules/php.rules.inc(107) :
第1行的eval()代码
当我想到特定页面时,该功能没有问题。下面是错误标记为..
的函数function rules_php_eval_return($code, $arguments = array()) {
extract($arguments);
return eval($code);
}
任何人都能建议我可能会遇到什么问题!这是drupal 6.x版本。
答案 0 :(得分:2)
当我将一个来自Drupal站点的PHP代码片段粘贴到一个块来显示子菜单时,我遇到了这样的错误。这些子菜单在foreach循环中被检测并分配,但由于没有任何子菜单,菜单变量仍然未分配,因此也未声明。
我明显的解决方案是在foreach循环之前为菜单变量分配一个空字符串。
答案 1 :(得分:1)
我不知道drupal,但我认为$ code包含类似的内容:
$code = '<?php $someCode;';
eval($code);
//Produces : Parse error: syntax error, unexpected '<' in file(1) : eval()'d code on line 1
错误告诉您$ code包含解析错误(可能是phptag)
你是一个echo $ code来检查是什么问题。
答案 2 :(得分:0)
如果您无法访问该站点,请转至/ modules文件夹并将“php”文件夹移动到其他位置。然后您就可以访问网站了。快速删除错误的代码并替换该文件夹。 然后,开始调试它。
答案 3 :(得分:0)
我在尝试处理HTTP请求返回的数据时遇到了同样的问题。我使用的是simplexml_load_string,但HTTP响应是一个错误,所以数据没有格式化为XML,因此导致simplexml错误(传播)。我的消息和你的一样,“第X行的文件错误;第X行的eval'd()代码”。因此,它可能不一定是您的代码中的错误,甚至是评估代码。
虽然看起来您没有以下问题,但也要记住这一点。在eval'd代码中声明变量时,它们的范围与文件中的内联相同。类似地,eval'd代码之前的变量在其中可用,并且可能导致冲突或无意中重新分配(例如,嵌套循环中的$ i)。