5

PHP から file_get_contents を使用しようとしましたが、うまくいきません。

私のコードがあります:

$filename = "/opt/gemel/test.txt";


if($filecontent = file_get_contents($filename)){

    $nom = fgets(STDIN);

    file_put_contents($filename, $nom, FILE_APPEND);
}
else
    echo "fail";

私のファイルtest.txtは空です。(0 オクテット)。彼は存在しますが、彼は空です。

何かを書き込むと、コードは完全に機能しますが、空の場合、コードエコーは「失敗」します

なぜ、なぜ彼はファイルtext.txtを開けないのでしょうか?

4

1 に答える 1

16

この関数file_get_contentsは、ファイル内の文字列を返します。ファイルにデータが含まれていない場合file_get_contentsは、空の文字列を返します。あなたがしようとするなら、var_dump('' == false);あなたは得るでしょうtrue。そのため、ファイルを読み取ることができても、ファイルの内容は と評価されfalseます。

この行を使用すると、コードが機能するはずです。

if($filecontent = file_get_contents($filename) !== false){

編集; 比較演算子のドキュメントへのリンク。

于 2013-07-12T12:36:23.227 に答える