我正在尝试将 drupal 安装转换为由 Code Igniter 驱动的前端。这是一个实验项目,用于检查我可以获得的性能提升。但我面临的最大问题是 Drupal 中很少有字段按原样存储 php 字符串。例如
<?php print "A"; ?>
This is normal
现在我可以看到来 self 在 Code Igniter 中运行的查询的文本“这是正常的”,但是我没有看到保存在表中的 php 函数。通过phpmyadmin查看记录时可以看到文字。但不知何故不在 CI 查询结果中。
最佳答案
我希望你已经找到了解决方案。但以防万一,如果你还没有尝试过这个:
我创建了一个包含两列的表
//$result Contains the data fetched from the table using a model. foreach ($result as $key=>$val) { if($key == 'code') { $val = str_replace('<?php','',$val); //Remove PHP's opening tag. $val = str_replace('?>','',$val); //Remove PHP's closing tag. $val = rtrim($val); //Remove leading and trailing spaces. echo $key.': '; eval($val.';'); //Execute the PHP code using eval. } else { echo $key.': '.$val.PHP_EOL; } }
我试过了
echo $result['code']
print_r($result)
var_dump($result)
highlight_string($result['code'])
eval($result['code'])
- 最后是
str_replace
,然后是eval($result['code'])
。
查看从以下位置获得的结果的屏幕截图:here
在那里你可以看到 1,2 和 5 产生的结果是空的。但是,当您针对空白区域检查元素时,它会清楚地表明回显/打印的字符串已被注释掉。
这与codeigniter无关。它由 HTML Parser 完成。 所以解决办法就是去掉PHP的开始和结束标签,然后使用eval。我希望这会有所帮助。
关于MYSQL 表中的 PHP 代码不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14670414/