破坏的URL上的exif_imagetype在codeigniter中提供500内部服务器错误

时间:2013-12-21 23:30:38

标签: php codeigniter exif

常规PHP文件:

<?php

$test = exif_imagetype('http://www.example.com/some_broken_link.jpeg');

var_dump($test);

?>

结果:

bool(false)

Codeigniter控制器:

class test extends CI_Controller {

    function index() {

        $test = exif_imagetype('http://www.example.com/some_broken_link.jpeg');

        $data = array(

            'test' => $test

        );

        $this->load->view('test', $data);

    }

};

在视图文件中执行var_dump($test)

HTTP Error 500 Internal server error

现在当我用'some_working_link.jpeg'替换'some_broken_link.jpeg'时,常规php文件 Codeigniter视图文件显示为int(2)。

PHP错误已打开,检查了Apache / PHP日志,但没有显示任何内容。当我使用断开的链接时,Codeigniter上只有500 Int错误。

任何人都知道发生了什么事吗?我需要代码点火器中的bool(false)。

1 个答案:

答案 0 :(得分:0)

HTTP Error 500 Internal server error来自Apache阻塞从Codeigniter到PHP的链中的东西。如果链接断开,那么您希望Codeigniter到底做什么:$this->load->view('test', $data);?这种调用本身就是造成500错误的原因。不是100%清楚你的设置是什么问题,但我的直觉是这样的代码:

class test extends CI_Controller {

    function index() {

        $test = exif_imagetype('http://www.example.com/some_broken_link.jpeg');

        if (!empty($test)) {

            $data = array(
                'test' => $test
            );

           $this->load->view('test', $data);
        }

    }

};

只需为$ test设置一个有条件的if即可与bool(false)请求中的bool(true)exif_imagetype一起使用。