5

私は最近、いくつかの HTML と PHP をいじり始めました。おそらく非常に簡単に解決できるエラーに遭遇しましたが、私の人生で修正できなかったエラーです。

一言で言えば、私がしようとしているのは、ディレクトリを作成し、そのディレクトリに同じ名前の .txt ファイルを作成することです。これは、「/number/number.txt」のようなものです。ファイルを作成したり、ディレクトリを作成したりするのは簡単に思えますが、両方を実行しようとすると、問題が尽きることはありません。

これが私のコードです:

mkdir($postnum, 0777);
chmod($postnum, 0777);

$post = "/" . $postnum . "/" . $postnum . ".txt";
$post = boards(__FILE__) . $post;

$po = fopen($post, 'w+') or die("Can't open file");
chmod($post, 0777);

これを書く際にいくつかの問題がありました.mkdirを使用して、作成したディレクトリのアクセス許可を設定できることを読みましたが、正しい方法であると信じていることを行ったにもかかわらず、何もしませんでした. そのため、すぐに chmod を実行しました。

次に、 /$postnum/$postnum.txt だけでディレクトリを開くことができると思っていましたが、それを試してみるとダイテキストが表示され、「boards( FILE ) 部分を追加して取得する必要がありました。 (ちなみに、「ボード」は私が作業しているディレクトリです)

それでも、「ファイルを開けません」というメッセージは表示されませんが、ファイルなどは作成されません。

ファイルとリモートで対話するファイルまたはフォルダーのアクセス許可が 0777 に設定されていることを確認したので、それはおそらく問題ではありません。(また、すべてのファイルをそのように完全に開いておくのは最善のアイデアではないこともわかっています。これが適切に機能するようになったら、アクセス許可をより安全なものに設定します)

私が間違っていることは何か分かりますか?

4

3 に答える 3

2
making directory and creating path:-

$new_folder=mkdir('uploads\\'.$folder_name, 0777, true);

('uploads\\'.$folder_name)->path where you create folder like www->upload->folder name(whatever you provide)

$path="uploads\\".$folder_name."\\";//if you want to provide path you can provide this way
于 2012-10-23T05:33:15.487 に答える
1

mkdir関数は、ドキュメントのルートではなく、ファイルシステムのルートを基準にしたパスを取ります。

* nixシステムを使用している場合、Webサイトのドキュメントルートは/ var / www / sitename / htmlなどのパスにある可能性がありますが、アカウントにない/number/number.txtを作成しようとしています。行う権限。mkdirに渡すパスを、フォルダーとファイルを作成する権限があるファイルシステムのどこかに変更すると、コードが機能するはずです。

編集:

あなたの質問のコードは実際には何も書き込もうとしません。fopenを呼び出すことでファイルハンドルを作成しましたが、実際にファイルにデータを書き込むにはfwriteを呼び出す必要があります。@JamesSwiftが提案しているように、file_put_contentsを確認することをお勧めします。

于 2012-10-23T05:46:54.957 に答える