0

これでファイルを保存しようとしていますが、ファイルが作成されますが、常に空です。これはそのコードです:

<?php

$code = htmlentities($_POST['code']);

$i = 0;
$path = 'files/';
$file_name = '';

while(true) {
    if (file_exists($path . strval($i) . '.txt')) {
        $i++;
    } else {
        $name = strval($i);
        $file_name = $path . $name . '.txt';
        break;
    }
}

fopen($file_name, 'w');
fwrite($file_name, $code);
fclose($file_name);

header("location: index.php?file=$i");

?>

空でないことを確認するために $code をエコーアウトしましたが、空ではありませんでした。私も交換してみました

fwrite($file_name, $code);

これとともに:

fwrite($file_name, 'Test');

そしてそれはまだ空でした。私は以前にPHPでファイルに数回書き込んだことがありますが、私はまだPHPに本当に慣れていないので、何が悪いのかわかりません。誰かが私が間違っていること、またはこれを修正する方法を教えてもらえますか? ありがとう

4

2 に答える 2

1

php.netのサンプルを見てください。

于 2013-03-28T00:05:51.147 に答える
1

ファイルまたはストリームの読み取り/書き込みには、リソース ハンドルが必要です。

$resource = fopen($file_name, 'w');
fwrite($resource, $code);
fclose($resource);

リソース ハンドル$resourceは、基本的に、開いているファイル/ストリーム リソースへのポインターです。ファイル名の文字列表現ではなく、作成されたリソース ハンドルを操作します。

この概念はcURLにも存在します。これは、PHP では一般的な方法です。特に、これらのメソッドが登場した時点で PHP は OOP をサポートしていませんでした。

于 2013-03-28T00:11:50.120 に答える