2012-07-26 68 views
1

我有以下代码。 在我的基本目录,其中主要的CodeIgniter PHP索引文件是,我有权限的目录pagemodules 666 我想要做的是写在下面的文件名格式的文件:.main.control.function.var.something.mod诊断write_file在CodeIgniter中不起作用的原因

要动态创建的文件在这个文件夹中,我使用下面的代码来检查文件是否存在,如果不存在,用它中的一个空格创建它。

唯一的问题是,我每次都想出一个失败。我曾尝试将目录移动到每个可能的目录中,以查看它是否是文件路径问题,但这没有帮助。 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; 
     } 
    } 
} 
+0

将权限设置为777,并再次尝试。 – gorelative 2012-07-26 15:00:41

+0

这只会增加执行权,我不需要这些,只是阅读和写作,666就足够了。 777没有帮助。 – Tschallacka 2012-07-26 15:05:19

+3

虽然切换到777帮助吗?您应该隔离假设并确保它确实是写权限问题。什么用户/组是服务器(脚本)运行?什么是目录/文件的用户/组? – Brendan 2012-07-26 15:39:56

回答

2

好,只是用于调试目的:

为了得到pagemodules绝对路径(如果它位于笨的index.php目录)更换'./pagemodules/'FCPATH.'pagemodules/

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

get_filenames('path/to/pagemodules/') 

...得到它的文件,并证实它是否correct.This函数返回和数组的文件名到它。

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

+0

这解决了我的问题问题。非常感谢manix! – Tschallacka 2012-07-27 18:55:33

+1

非常欢迎你:) – manix 2012-07-27 18:58:19