codeIgniter - 如何从模型访问文本文件

时间:2012-03-25 05:19:10

标签: php codeigniter

我正在尝试从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 enter image description here

错误是:

遇到PHP错误

严重性:警告

消息:文件(../../ assets / mime.types)[function.file]:无法打开流:没有这样的文件或目录

文件名:models / files.php

行号:46

1 个答案:

答案 0 :(得分:1)

为什么你会为mime类型遇到这么多麻烦,请改用mime_content_type()

echo mime_content_type($mimePath.$filename);

您的代码问题是路径问题。使用BASEPATH常量并从那里遍历。您将省略所有这些路径问题。