0

まあ、それはかなり奇妙です...

100% 機能している Web サイトをサーバーにアップロードしましたが、突然機能しなくなったようです。

具体的には:

  • ホームコントローラーでは、すべてが順調に進んでいますが、その$this->load->view(部分は無視されているようです
  • 電源error_reportingを入れて に設定ENVIRONMENTしましdevelopmentたが、それでもエラーはまったく表示されません

私のHome/Indexコントローラー:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Home extends CI_Controller {

    public function index()
    {
        $this->load->model('theme');
        $themes = $this->theme->getLatestThemes(100);

        $this->load->model('post');
        $posts = $this->post->getLatestPosts(3);

        echo "ENVIRONMENT : ".ENVIRONMENT; // Shows up fine

        $this->load->view('home',array("themes"=>$themes, "posts"=>$posts));

        echo "AFTER"; // Shows up fine
    }
}

?>

何か案は?何がうまくいかないのですか?


PS注意してください、すべてのデータベース設定がそれに応じて更新されていることに注意してください.htaccess.


アップデート :

この奇妙な問題の原因を絞り込んだようです...

フックを無効にすると、ビューが正常に読み込まれます。しかし、オンラインではなくローカルで機能している理由はまだわかりません。

hooks.php で

$hook['display_override'] = array(
'class' => 'Minifyhtml',
'function' => 'output',
'filename' => 'Minifyhtml.php',
'filepath' => 'hooks',
'params' => array()
);

フック/MinifyHtml.php

<?
    function getAd($matches)
    {
        $CI =& get_instance();

        return $CI->load->view("template/adsense",array("ad"=>$matches[1]),true);
    }

    class Minifyhtml {

        function output()
        {
            $CI =& get_instance();
            $buffer = $CI->output->get_output();

            $search = array(
                '/97ed7d147627494968723a2bc9f346c699e2a004gt;[^\S ]+/s',    //strip whitespaces after tags, except space
                '/[^\S ]+97ed7d147627494968723a2bc9f346c699e2a004lt;/s',    //strip whitespaces before tags, except space
                '/(\s)+/s',    // shorten multiple whitespace sequences
                '/<!--(.*)-->/Uis'
                );
            $replace = array(
                '>',
                '<',
                '\1',
                ''
                );

            $ad_regex = "/%%([A-Za-z0-9:\-]+)%%/i";

            $buffer = preg_replace($search, $replace, $buffer);
            $buffer = preg_replace_callback($ad_regex, "getAd", $buffer);

            $CI->output->set_output($buffer);
            $CI->output->_display();
        }
    }
?>
4

1 に答える 1