• ベストアンサー

PHP初心者です、教えていただけすか。

/public_html /test のtest.txtの文字列をtest.phpで表示させたいのですが、 下記の文では表示されません、どこがおかしいのか教えてください。 <?php $fp = fopen ('test.txt', 'w'); $date = "test\n"; var_dump (fwrite($fp, $date)); fclose ($fp); ?>

  • PHP
  • 回答数5
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#6562
noname#6562
回答No.5

こんにちわ。 PHPのバージョンが4.3.0以上であれば、 <?php // このスクリプトと text.txt が同じディレクトリにあることを想定しています: // /.../public_html/test/test.php このスクリプト // /.../public_html/test/test.txt 読みたいファイル // ちなみにその場合 './test.txt' とも指定できます。 $my_file = file_get_contents('test.txt') echo $my_file; ?> が一番早いですよ。file_get_contents() は指定されたファイルの中身を全てひとつの変数(上の例では$my_fileです)に入れてくれます。だからあとはそれをecho(またはprint)するだけです。 ちなみに、質問にお答えすると、fwrite()では書いたファイルの中身を取得することは出来ません(取得できるのは書いたバイト数です)。ファイルの中身を読み込むためにはfread()を使用します。また、読むだけであれば、'w'ではなく'r'を使用してfopen()します(詳細は参考URLまたは各文献にて)。 余談になりますがプログラミング初心者でもPHP初心者でもどちらでもかまわないと思いました。

参考URL:
http://jp.php.net/fread

その他の回答 (4)

  • umioyo
  • ベストアンサー率66% (35/53)
回答No.4

読み込み方は下の皆さんの書き方でいいとして、 > /public_html > /test > のtest.txtの文字列を ってのが気になったのですが、 /public_html/test/test.txt のファイルを表示させたいということでしょうか。 test.phpの位置が /public_html/test.php であれば、 fopen('text/test.txt','r'); になります。 一応念のため。

  • sisya
  • ベストアンサー率39% (97/245)
回答No.3

PHP初心者と言うより プログラム初心者の方とお見受けしますが、 PHPに限っての使用でしたら $vData = file('test.txt'); print implode("", $vData); と言った書き方もあります。 始めの内はファイル制御の概念は判りづらいと思いますので、 読み込むだけでしたらこちらの書き方をお勧めします。 (ただ、覚えておいて損は無いです) 例に上げられた書き方は ファイルの内容を細かく制御する必要がある時以外 実践ではあまり使い道が無いように思います。 (C言語の名残的意味合いもあるのでしょうけどね)

  • nessnet
  • ベストアンサー率23% (4/17)
回答No.2

表示のみの場合は下の方もおっしゃってますが、 fopen('text','r'); です。wで開くと中身が全部カラになってしまうので表示されないのではないでしょうか。

  • Miki3548
  • ベストアンサー率24% (22/89)
回答No.1

>表示させたいのですが、 >$fp = fopen ('test.txt', 'w'); 'w' は書き込み専用モードで開く なので 'r' かな?

参考URL:
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k03.htm

関連するQ&A

  • PHPのfrrite関数

    お世話になります。 PHPのfwrite関数について質問です。 下記の様な記述で、アクセスがあった際に$lineをdata.txtに保存する場合、同じタイミングで複数のアクセスがあった場合などにエラーは起きないのでしょうか? エラーが起こりうるのであれば、その対処方法を教えて頂きたいです。 $fp = fopen("data.txt", "w"); fwrite($fp, $line); fclose($fp);

    • 締切済み
    • PHP
  • ファイルに書き込む時の負荷について

    PHPバージョン5.2.4を使っています。 次のような // ------------------------------------ $fp = fopen("data.txt", "w"); $buf = ""; for ($i = 1; $i <= 3; $i++) { $buf .= "aaa$i\n"; } fwrite($fp, $buf); fclose($fp); // ------------------------------------ という変数にいったん保存してから書き込む場合と // ------------------------------------ $fp = fopen("data.txt", "w"); for ($i = 1; $i <= 3; $i++) { $buf = "aaa$i\n"; fwrite($fp, $buf); } fclose($fp); // ------------------------------------ というその都度ファイルに書き込む場合とでは どちらが良い悪いというのはあるのでしょうか? たとえばこちらのやり方は負荷がかかるなど ループが多くなっていった場合に違いがでてくるのでしょうか?

    • ベストアンサー
    • PHP
  • phpのエラー

    phpで $fp = fopen("test.txt", a);//ココ1 $jyusin = $_POST['score'];//ココ2 fwrite($fp, $jyusin); fclose($fp); $f = fopen("test.txt", r);//ココ1 echo fgets($f); fclose($f); ココ1の場所でUse of undefined constant...というエラー ココ2の場所でUndefined index...というエラー 上記のエラーはどうしたら直りますか。 因みにissetで隠す方法以外でお願いします。

    • ベストアンサー
    • PHP
  • fwrite の文法が間違っていますか?

    どうしてもエラーになってしまいます どこが間違っているかお教え頂けませんでしょうか 宜しくお願い致します $fp_i = fopen($indexphp, "w"); fwrite($fp_i, "<html>\n<head>\n"); fwrite($fp_i, "<title>title</title>\n"); fwrite($fp_i, "<meta http-equiv=\"content-type\" content=\"text/html; charset=Shift_JIS\">\n"); fwrite($fp_i, "</head>\n"); fwrite($fp_i, "<body>\n"); fwrite($fp_i, "<?php\n"); fwrite($fp_i, "$txt = 'test'\n"); fwrite($fp_i, "print'($txt)';\n"); fwrite($fp_i, "?>\n"); fwrite($fp_i, "</body>\n"); fwrite($fp_i, "</html>");

    • ベストアンサー
    • PHP
  • ラジオボタンの値を取得

    こんばんわPHPでラジオボタンの値を取得してその値をオープンしたテキストに値を書き込みたいのですが、どうもうまくいきません。 $ff = $name["radiobutton"] $fp = fopen("../php/test1.txt","a"); fwrite($fp, $ff , "\n"); fclose($fp); 直接入れれば、書き込むのでファイル操作はうまく機能していると思うのですが、エラーの箇所をいろいろ変えてみても動かないので、質問させていただきました。

    • ベストアンサー
    • PHP
  • 無料ホームページの鯖でPHPでfwrite出来ない

    無料ホームページのサーバに"php"というフォルダをアップし、その中に"write.php", "text.txt","read.php"というファイルを作って実行させたのですが、 "write.php"で、 $file = "text.txt"; $fp = fopen($file, "w"); if ($fp == FALSE) { print "ファイルオープン失敗<br />"; } else { fwrite($fp, $text); fclose($fp); } を実行しても"text.txt"の内容が変わらない(空のまま)のですが、何がいけないのでしょうか? "text.php"のパーミッションは666で、"php"フォルダは707です。 考えられる原因をご教授下さい、お願いします。

    • 締切済み
    • PHP
  • phpで二重書込みできないプログラムを作りたい

    PHP初心者です。 テキストファイルに、ある文字列を書き込むプログラムを作ろうとしています。 ファイル内容に同じ文字列があれば書き込まず、 同じ文字列が無ければファイルに書き込むという プログラムを作りたいのですが、 うまくいきません。 どなたかアドバイスをお願いします。 <?php $name = "文字列"; $fp = @fopen("file.txt", "r"); $contents = @file_get_contents($fp); if(ereg($name, $contents)) { print "登録済みです。" ; } else { $fpa = @fopen("file.txt", "a"); fputs($fpa, "$name\n"); fclose($fpa); print "登録しました。"; } fclose($fp); ?>

    • 締切済み
    • PHP
  • 【PHP】書き込みできません

    PHP5.3の環境でファイル書き込みのロジックがうまくいかずに困っています。 環境は下記の通りです。 Apache 2.2.2 PHP 5.3.3 コードは下記の通りです。 >>CODE $file_path = "/home/xxxxx/logs/test.txt"; echo file_exists($file_path); echo "file_path1=".$file_path; if ( file_exists($file_path) ) { echo "file_path2=".$file_path; // ファイルポインタ取得 if ( ($fp = fopen($file_path, 'a')) !== FALSE ) { // ログは追記 echo "file_path3=".$file_path; // ファイルポインタに書き込み fwrite($fp, $date."\n"); fwrite($fp, $body); fwrite($fp, "----------------------------------------------------\n"); // ファイルポインタクローズ fclose($fp); $flg = true; } } <<CODE 権限は下記の通りです。 logs 777 test.txt 777 現象は下記の通りです。 echo文のfile_path1は表示されます。 echo文のfile_path2及びfile_path3は表示されません。 $file_path="/home/logs/test.txt";に変更すると、 echo文のfile_path1及びfile_path2が表示されます。 echo文のfile_path3は表示されません。 ファイルが存在することはlsで確認したので間違いありません。 権限も777にしているので、何がおかしいのか困り果ててしまい、初めて投稿させて頂きました。 PHPやApacheの設定ファイル等も問題あるのでしょうか。 どうぞご指摘お願いいたします。

  • PHPでFopenモードを「a」で開きたいのですが、

    PHPでFopenモードを「a」で開きたいのですが、 パーミッションを「777」でしか受け付けてくれません。 コードは、 $fp = @fopen("test.txt","a") or die("Error"); echo "ok"; fclose($fp); です。 サーバーはxreaでPHPのバージョンは5です。

    • 締切済み
    • PHP
  • さくらサーバーのcronでphpを動かしてファイルを作りたい。

    さくらサーバーのcronでphpを動かしてファイルを作りたい。 cron.php <?php $date = date("Y/m/d H:i:s"); $fp = fopen("./cron.txt", "w"); flock($fp, LOCK_EX); fputs($fp,$date); fclose($fp); print "cron成功"; ?> cron報告レポートには[cron成功]の文字が出ているので、cronコマンドは間違っていないのですが、cron.txtが作れていません。 直接、cron.phpにアクセスすると、[cron成功]と文字が出てcron.txtも作れています。 どうすればcron.txtが作れるのでしょうか。 よろしくお願いします。

専門家に質問してみよう