诊断write_file在CodeIgniter中不起作用的原因

时间:2012-07-26 14:49:17

标签: file codeigniter

我有以下代码。 在我的主CodeIgniter PHP索引文件的基本目录中,我有一个具有权限666的目录pagemodules。 我想要做的是用以下文件名格式写入一个文件:.main.control.function.var.something.mod

要在此文件夹中动态创建文件,我使用以下代码检查文件是否存在,如果不存在,则使用单个空格创建文件。

唯一的问题是,我每次都想出失败。我已经尝试将目录移动到每个可能的目录,看看它是否是文件路径问题,但这没有帮助。 CodeIgniter wiki也没有多大帮助,因为它没有提供有关如何从文件助手诊断错误的指示。并且没有任何错误被抛出......

如何让CodeIgniter抛出错误我可以做些什么?

我可以开始使用fopen,但我更喜欢使用CodeIgniter,因为它易于使用。

error_reporting(E_ALL);
ini_set("display_errors", 1);
$this->load->helper('file');
if($createfile!=null)
{
    $filepath = './pagemodules/'.str_replace('/','.',$data['page']->url).'.mod';
    $file = read_file($filepath);
    if($file === false)
    {
        $test = write_file($filepath,' ','w+'); 
        if($test)
        {
            echo "we have written $filepath";
        }
        else
        {
            echo 'fail '.$filepath;
        }
    }
}

1 个答案:

答案 0 :(得分:2)

好吧,仅用于调试目的:

'./pagemodules/替换为'FCPATH.'pagemodules/以获取页面模块的绝对路径(如果它位于index.php codeigniter目录中)。

为避免路径无效,您可以使用...

get_filenames('path/to/pagemodules/')

...获取文件并证实它是否正确。此函数返回并带有文件名的数组。

请记住,您可以使用FCPATH常量来获取Codeigniter安装的绝对路径。