MYSQL 表中的 PHP 代码不显示

标签 php mysql codeigniter

我正在尝试将 drupal 安装转换为由 Code Igniter 驱动的前端。这是一个实验项目,用于检查我可以获得的性能提升。但我面临的最大问题是 Drupal 中很少有字段按原样存储 php 字符串。例如

<?php print "A"; ?>

This is normal

现在我可以看到来 self 在 Code Igniter 中运行的查询的文本“这是正常的”,但是我没有看到保存在表中的 php 函数。通过phpmyadmin查看记录时可以看到文字。但不知何故不在 CI 查询结果中。

最佳答案

我希望你已经找到了解决方案。但以防万一,如果你还没有尝试过这个:
我创建了一个包含两列的表
Table Content

//$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;
    }
 }


我试过了
  1. echo $result['code']
  2. print_r($result)
  3. var_dump($result)
  4. highlight_string($result['code'])
  5. eval($result['code'])
  6. 最后是 str_replace,然后是 eval($result['code'])

查看从以下位置获得的结果的屏幕截图:here

在那里你可以看到 1,2 和 5 产生的结果是空的。但是,当您针对空白区域检查元素时,它会清楚地表明回显/打印的字符串已被注释掉。

Screen-Shot .

这与codeigniter无关。它由 HTML Parser 完成。 所以解决办法就是去掉PHP的开始和结束标签,然后使用eval。我希望这会有所帮助。

关于MYSQL 表中的 PHP 代码不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14670414/

相关文章:

mysql - SQL 转发错误 1215 : Cannot add foreign key constraint

mysql - 如何根据某些条件从数组中获取数据

mysql - 如何优化从多个表(到一个表)的删除查询?

php - 如何使用 WHERE = 'all' 编写 SQL 查询?

php - 在 Laravel/Homestead 中更改数据库名称

PHP 到 mySQL 查询错误

mysql - 如何使用 union 连接表? mysql

php - Angular 2 发布对 php 文件的请求

php - 为什么存储在 session 变量中的数组计数会加倍?

php - MySQL 重复条目造成内部服务器错误