- ベストアンサー
外部ファイル(テキスト)を取り込んで表示すると余計なおまけが・・・
おはようございます。 以下のようにして外部からテキストファイルを取り込みました。 $FileName = "hoge.txt"; $FileIn = include($FileName); if($FileIn){ echo $FileIn; } すると、『hoge.txt』の中身をどのようにしようが反映されるのですが、 最後に必ず「1」と表示されます。 hoge.txtの中身が「こんにちは」なら「こんにちは1」 「さようなら」→「さようなら1」 「困ったよ1」→「困ったよ11」 「<p>おはようございます</p>」→「おはようございます」改段「1」 これは何故でしょうか? 「include」の代わりに「require」や「include_once」を使っても 全く同じ症状です。 どうしたら直るでしょうか。 初歩的な質問で恐縮ですが、皆さまのお知恵を拝借できれば幸いです。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
echoしてるからinclude関数の戻り値が表示されているのでは? ココ↓の例16-9を参照 http://manual.xwd.jp/function.include.html
その他の回答 (1)
- UmJammer
- ベストアンサー率58% (115/196)
include()やrequire()はファイルを読み込んで「評価する」関数なので、その現象が起きる、起きないにかかわらずファイルシステム関数を使う方がベターと考えられます。 http://jp.php.net/manual/ja/ref.filesystem.php
お礼
UmJammerさん、コメントありがとうございます。 ファイルシステム関数の中から、 「file_get_contents」を使ってやってみたら、 なんとか上手く表示することができました。 御礼申し上げます。
お礼
ts3m-ickwさん、コメントありがとうございました。 戻り値について全く理解しておりませんでした。 「ファイルの中身」と「1」、両方の戻り値が同時に 戻ってきてしまったようですね。 ご紹介いただいたURLを拝見して状況を理解することができました。 御礼申し上げます。