我正在尝试从codeIgniter中的模型访问mime.types文件。
function get_mime_type($filename, $mimePath = '../../assets'){
$fileext = substr(strrchr($filename, '.'), 1);
if (empty($fileext)) return (false);
$regex = "/^([\w\+\-\.\/]+)\s+(\w+\s)*($fileext\s)/i";
$lines = file("$mimePath/mime.types");
foreach($lines as $line){
if (substr($line, 0, 1) == '#') continue; // skip comments
$line = rtrim($line) . " ";
if (!preg_match($regex, $line, $matches)) continue; // no match to the extension
return ($matches[1]);
}
return (false); // no match at all
}
我打电话时已经尝试了以下内容:
$this->get_mime_type($filename, $mimePath = '../../assets');
$this->get_mime_type($filename, $mimePath = '/zenoir/assets');
$this->get_mime_type($filename, $mimePath = 'http://localhost:8080/zenoir/assets/mime.types');
但没有运气。 mime.types文件位于assets文件夹中,模型是inzenoir / application / models
错误是:
遇到PHP错误
严重性:警告
消息:文件(../../ assets / mime.types)[function.file]:无法打开流:没有这样的文件或目录
文件名:models / files.php
行号:46
答案 0 :(得分:1)
为什么你会为mime类型遇到这么多麻烦,请改用mime_content_type()。
echo mime_content_type($mimePath.$filename);
您的代码问题是路径问题。使用BASEPATH
常量并从那里遍历。您将省略所有这些路径问题。