2012-03-31 4 views
9

で別のディレクトリにファイルを作成 -マイフォルダ構造が似ているPHP

root 
    admin 
    create_page.php 
    pages 
    my_page1.php 
    my_page2.php 

私は「ページ」フォルダに新しいPHPファイルを作成するためのコードを持っています。コードはのようです -

$dir_path = "../pages/"; 
$ourFileName = '../'.$page_name.".txt"; 
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file"); 
$ourFileContent = '<?php echo "something..." ?>'; 
if (fwrite($ourFileHandle, $ourFileContent) === FALSE) { 
    echo "Cannot write to file ($filename)"; 
    exit; 
} 

コードは正常に実行されます。問題はありません。ページは作成されていません。私が間違っていることを教えてください。パスに問題はありますか? fclose($ ourFileHandle);

+0

'$ dir_path'を設定しましたが、使用していません。また、相対リンクを使用できるかどうかわからない場合は、絶対パスを使用することもできます。マップの書き込み権限をに設定していることを確認してください。 – ArendE

+0

'$ page_name'は設定されておらず、あなたは何のファイルでも書いていませんでした。 – safarov

+0

' $ page_name'をどこで設定しますか?この行に構文エラーがありますか?<?php echo "something?"?> 'dont forget閉じたセミコロン –

答えて

18

はここで、関数fopen、fwriteのためのよりシンプルなfile_put_contents()ラッパーを使用した例です

<?php 
error_reporting(E_ALL); 

$pagename = 'my_page1'; 

$newFileName = './pages/'.$pagename.".php"; 
$newFileContent = '<?php echo "something..."; ?>'; 

if (file_put_contents($newFileName, $newFileContent) !== false) { 
    echo "File created (" . basename($newFileName) . ")"; 
} else { 
    echo "Cannot create file (" . basename($newFileName) . ")"; 
} 
?> 
1

あなたは意図的に$ dir_pathと$ ourFileNameをconcatinatingしたことがありませんでした。

  1. は、ディレクトリ/ファイルwritableのですか?
  2. あなたのご確認くださいcurrent working directory
  3. あなたのerror_reportingはあなたですか?
6
$ourFileHandle = fopen("../pages/" .$ourFileName, 'w') or die("can't open file"); 

は三行目に上記の変更を作成し、それはおそらく動作しますfcloseは、私はそれを試して、それは働いた。

+0

が私のために働くthankx –

0

は、フォルダのアクセス権は、他のファイルのように同じであることを確認し、異なるアクセス権を持つ、ファイルをフォルダに作成されることはありません。この

$pagename = 'your_filename'; 
$newFileName = '../pages/'.$pagename.".php"; 
+0

このコードは質問に答えるかもしれないが、長期的価値 – NathanOliver

1

は同じ問題を抱えていた試してみてください。

+0

あなたは正しいです!私はchmod 777でファイルを作成したいフォルダのパーミッションを変更し、ファイルを適切に作成しました。 – MaryamH

関連する問題