• ベストアンサー

外部ファイル(テキスト)を取り込んで表示すると余計なおまけが・・・

おはようございます。 以下のようにして外部からテキストファイルを取り込みました。 $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」を使っても 全く同じ症状です。 どうしたら直るでしょうか。 初歩的な質問で恐縮ですが、皆さまのお知恵を拝借できれば幸いです。 よろしくお願いいたします。

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

  • ベストアンサー
  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.1

echoしてるからinclude関数の戻り値が表示されているのでは? ココ↓の例16-9を参照 http://manual.xwd.jp/function.include.html

kumatti51
質問者

お礼

ts3m-ickwさん、コメントありがとうございました。 戻り値について全く理解しておりませんでした。 「ファイルの中身」と「1」、両方の戻り値が同時に 戻ってきてしまったようですね。 ご紹介いただいたURLを拝見して状況を理解することができました。 御礼申し上げます。

その他の回答 (1)

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.2

include()やrequire()はファイルを読み込んで「評価する」関数なので、その現象が起きる、起きないにかかわらずファイルシステム関数を使う方がベターと考えられます。 http://jp.php.net/manual/ja/ref.filesystem.php

kumatti51
質問者

お礼

UmJammerさん、コメントありがとうございます。 ファイルシステム関数の中から、 「file_get_contents」を使ってやってみたら、 なんとか上手く表示することができました。 御礼申し上げます。

関連するQ&A