アプリ版:「スタンプのみでお礼する」機能のリリースについて

「include」と「file_get_contents」の違いがよく分かりません。

ネットで調べてみました。
・「include」… 指定したファイルを読み込んで評価
・「file_get_contents」… 指定したファイルの内容を全て読み込んで文字列として返す

で、実際に試してみたのですが、「file_get_contents」の方がよく分かりません。

具体的には、下記を試すと、結果が、tt string(44) "" となるのですが、ttって何ですか?
評価をしないで文字列として返したということでしょうか? それでなんで tt になるのでしょうか?

▼hoge.php
<?php
$s = file_get_contents("test1.php");
var_dump($s);
?>

▼test1.php
<?php
echo ("1どうなるのかな");
?>

A 回答 (2件)

include()はPHPの制御構文で、読み込んだファイルを評価して


実行します。当然テキストファイルでないとだめです。
用途としては、共通のソースとか、動的に生成するソースを組み込むのに
使う事が多いです。

file_get_contents()はPHPの外部関数で、ファイルを読み込みます。
画像ファイルとか、Acrobat pdfファイルのようなバイナリーファイルも
読み込めます。(文字列として読み込まれます)

hoge.phpで
<?php
header("Content-type:image/jpeg");
print file_get_contents(hoge.jpg);
?>
とすれば、
<img src="hoge.php">
なんて事もできます。

両方とも、ini設定で許されていれば、ファイル名をURL指定して、
HTTP経由で読み込むことも出来ます。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
おかげで無事解決しました。

▼勘違いしていた点;
・文字列として読み込まれるのであれば、var_dumpすれば当然ブラウザ上で確認できると思っていた点。

自分でも色々試している内、勘違いに気がつきました。
勉強になりましたー。

お礼日時:2010/09/22 20:31

※ PHPほとんどやったことないのでにわかな知識です。



include の場合読み込んだファイルに書いてあることがそのままincludeした場所に埋め込まれると考えると良いかもしれません。

▼hoge.php
<?php
 $test = 'HellowWorld!!';
?>

▼test1.php
<?php
 echo("TEST=$test"); //結果: TEST=
 include 'hoge.php';
 echo("TEST=$test"); //結果: TEST=HellowWorld!!
?>

▼読み込んだ結果こういう風に処理されている
<?php
 echo("TEST=$test");
 $test = 'HellowWorld!!';
 echo("TEST=$test");
?>

includeした部分に変数の宣言・初期化が埋め込まれるので、
二度目のechoでは$testに値が入っているわけです。

file_get_containsは単にファイルを読んでいるだけかと思います。

リファレンス読みました?

include
http://jp2.php.net/manual/ja/function.include.php

file_get_contains
http://jp2.php.net/manual/ja/function.file-get-c …
    • good
    • 0
この回答へのお礼

>リファレンス読みました?
……今読んでます。

お礼日時:2010/09/22 20:21

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