電子書籍の厳選無料作品が豊富!

/public_html
/test
のtest.txtの文字列をtest.phpで表示させたいのですが、
下記の文では表示されません、どこがおかしいのか教えてください。

<?php
$fp = fopen ('test.txt', 'w');
$date = "test\n";
var_dump (fwrite($fp, $date));
fclose ($fp);
?>

A 回答 (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
    • good
    • 0

読み込み方は下の皆さんの書き方でいいとして、



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

PHP初心者と言うより


プログラム初心者の方とお見受けしますが、
PHPに限っての使用でしたら

$vData = file('test.txt');
print implode("", $vData);

と言った書き方もあります。
始めの内はファイル制御の概念は判りづらいと思いますので、
読み込むだけでしたらこちらの書き方をお勧めします。
(ただ、覚えておいて損は無いです)

例に上げられた書き方は
ファイルの内容を細かく制御する必要がある時以外
実践ではあまり使い道が無いように思います。
(C言語の名残的意味合いもあるのでしょうけどね)
    • good
    • 0

表示のみの場合は下の方もおっしゃってますが、


fopen('text','r');
です。wで開くと中身が全部カラになってしまうので表示されないのではないでしょうか。
    • good
    • 0

>表示させたいのですが、


>$fp = fopen ('test.txt', 'w');

'w' は書き込み専用モードで開く
なので
'r' かな?

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!