如何在更改配置文件夹中的routes.php后修复这些php错误?

时间:2012-07-29 15:51:39

标签: php codeigniter codeigniter-2

我正在努力使我的路线文件从数据库动态更新。不幸的是,我的狡猾计划造成了一些问题。

我将此行添加到配置文件中的routes.php末尾:

include_once APPPATH . "cache/routes.php";

缓存文件夹中的routes.php文件会自动更新,这很好。目前,它看起来像这样:

$route["index"] = "pages/index/1";

$ route [“关于我们/ subpagetest”] =“pages / index / 4”; $ route [“关于我们”] =“pages / index / 3”;

问题是,我在每个页面的顶部都出现了这些错误:

  
    

遇到严重错误:警告

  
     

消息:无法修改标头信息 - 已发送的标头   (输出始于   /home/jshultz/public_html/application/cache/routes.php:3)

     

文件名:core / Security.php

     

行号:188

     

遇到严重错误:警告

     

消息:无法修改标头信息 - 已发送的标头   (输出始于   /home/jshultz/public_html/application/cache/routes.php:3)

     

文件名:libraries / Session.php

     

行号:672

我想也许这是一个权限错误,但我不知道?我已经尝试更改文件的权限,但没有改变任何东西。有什么想法吗?

编辑:

好的,所以application / cache文件夹中的routes.php需要有空缺

以下是在缓存文件夹中创建routes.php文件的CORRECTED代码:

public function save_routes()
        {

            // this simply returns all the pages from my database
            $routes = $this->Pages_model->get_all($this->siteid);

            // write out the PHP array to the file with help from the file helper
            if ( !empty( $routes ) )
            {
                // for every page in the database, get the route using the recursive function - _get_route()
                foreach( $routes->result_array() as $route )
                {
                    $data[] = '$route["' . $this->_get_route($route['pageid']) . '"] = "' . "pages/index/{$route['pageid']}" . '";';
                }

                $output = "<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');\n";

                $output .= implode("\n", $data);

                $this->load->helper('file');
                write_file(APPPATH . "cache/routes.php", $output);
            }

1 个答案:

答案 0 :(得分:1)

您可能需要在文件开头添加<?php并从

中删除Byte Order Mark
/home/jshultz/public_html/application/cache/routes.php

并且不要在该文件中使用PHP结束标记?&gt; 。使用?&gt; 会强制解释程序将标记后的字符视为文本输出。