原代码:
/**
* 当前请求的资源类型
* @access public
* @return false|string
*/
public function type()
{
$accept = $this->server('HTTP_ACCEPT');
if (empty($accept)) {
return false;
}
foreach ($this->mimeType as $key => $val) {
$array = explode(',', $val);
foreach ($array as $k => $v) {
if (stristr($accept, $v)) {
return $key;
}
}
}
return false;
}
//测试表明,无法获取真实的类型,查看原码,发现该方法有BUG
修改后:
/**
* 当前请求的资源类型
*
* @access public
* @return false|string
*/
public function type()
{
$accept = $this->server('HTTP_ACCEPT');
if (empty($accept)) {
return false;
}
//当前请求类型
$contentType=$this->header('content-type');
foreach ($this->mimeType as $key => $val) {
$array = explode(',', $val);
foreach ($array as $k => $v) {
//比对当前请求类型对应的key, 如xm
if (stristr($v, $contentType)) {
return $key;
}
}
}
return false;
}
//以上是我修改后的代码,望采纳。如查能帮到更多人,是我的荣幸
最佳答案