1

以下のコードがあります。メインの CodeIgniter PHP インデックス ファイルがあるベース ディレクトリに、パーミッション 666 のディレクトリ pagemodules があります。私がしたいことは、次のファイル名形式でファイルを書き込むことです。.main.control.function.var.something.mod

このフォルダーにファイルを動的に作成するには、以下のコードを使用してファイルが存在するかどうかを確認し、存在しない場合はスペースを 1 つ入れて作成します。

唯一の問題は、毎回失敗することです。ファイルパスの問題かどうかを確認するために、ディレクトリをすべての可能なディレクトリに移動しようとしましたが、それは役に立ちませんでした。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;
        }
    }
}
4

1 に答える 1

2

まあ、デバッグ目的のためだけに:

pagemodules'./pagemodules/'FCPATH.'pagemodules/の絶対パスを取得するには、 に置き換えます (index.php codeigniter ディレクトリにある場合)。

無効なパスを回避するには、次を使用できます...

get_filenames('path/to/pagemodules/')

...そのファイルを取得し、それが正しいかどうかを確認します。この関数は、ファイル名を含む配列を返します。

定数を使用FCPATHして、Codeigniter インストールへの絶対パスを取得できることに注意してください。

于 2012-07-27T11:53:53.903 に答える