常规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)。
答案 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
一起使用。