includeで読み込んだ内容を変数にいれたい

このQ&Aのポイント
  • includeで読み込んだファイルの内容を変数に格納する方法を教えてください。動的ページをHTMLファイルで出力したいと思っています。
  • $hogeの中に読み込んだファイルを書き込みたいのですが、うまくできません。この様な方法で変数にいれるのは可能でしょうか?
  • お願いします。
回答を見る
  • ベストアンサー

includeで読み込んだ内容を変数にいれたい

includeで読み込んだファイル内容を変数に格納する方法はありますか? 動的ページをHTMLファイルで出力したいと思っています。 例: if(!file_exists("$file")){ mkdir("$file",0755); } $fp = fopen("$file/index.html","w") flock($fp, LOCK_EX); $hoge = include("./hoge.php"); fputs($fp,'<html>'."\n"); fputs($fp,'$hoge'."\n"); fputs($fp,'</html>'."\n"); この様に、$hogeの中に読み込んだファイルを書き込みたいのですが、 うまくできません。 この様な方法で変数にいれるのは可能でしょうか? 宜しくお願いします。

  • melll
  • お礼率50% (114/227)
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

出力のバッファリングですね・・・ こんな風にやります。 <?PHP ob_start(); include("hoge.php"); $hoge=ob_get_contents(); ob_end_clean(); print $hoge; ?> ちなみに変数をシングルコーテーションでくくってはいけません

melll
質問者

お礼

ありがとうございます! 非常に助かりました。 本当に感謝です^^

関連するQ&A

  • ファイルへの書き込み

    フォームに入力されたデータをCSVファイルに書き込みたいのですが、以下のようにすると追加で書き込みはできるのですが、ずっと改行されずに1行に書き込まれてしまうので、新しいデータを入れる際に改行されるようにしたいのですが、どのようにすればいいでしょうか? $fp = fopen(TEST_FILE,"a") or die("ファイルを開けません\n"); flock($fp, LOCK_EX); fputs($fp, "aaa")."\n"; flock($fp, LOCK_UN); fclose($fp);

    • ベストアンサー
    • PHP
  • ファイルを開いたままオープンモードを変更したい

    $fp = fopen ($file, "r"); flock ($fp, 2); で開いたファイルをロックを解除しないままファイルを空にして書き込みモードに移行する方法を教えてください。 或いは $fp = fopen ($file, "r+"); flock ($fp, 2); からfputs()で書き込んだ後にファイルのファイルポインタ以降の部分を切り捨てる形でも良いです。 flock ($fp, 2);の後にfgetsによりファイル内容を取得した後ファイルロックをしたままファイルの余計な部分を捨てたいので $fp = fopen ($file, "w"); flock ($fp, 2); や $fp = fopen ($file, "r"); flock ($fp, 2); fgets ($fp); flock ($fp, 3); fclose ($fp); $fp = fopen ($file, "w"); flock ($fp, 2); は必要ありません。

    • ベストアンサー
    • PHP
  • 同じような処理を一つにまとめたい

    count.txt <?php $dis123=0; $dis001=0; $hoge01=0; ?> ___________ counter.php <?php $vote = $_GET[vote]; $fp = fopen("count.txt", "r+"); include("count.txt"); @flock($fp,LOCK_EX); //今現在(カウント前)の値を書き込む fputs($fp,"<?php \$dis123=$dis123; ?>\n"); fputs($fp,"<?php \$dis001=$dis001; ?>\n"); fputs($fp,"<?php \$hoge01=$hoge01; ?>\n"); //GETで得た情報からカウントした物に+1して書き込む if ($vote===dis123){ ++$dis123; fputs($fp,"<?php $$vote=$dis123; ?>\n"); } if ($vote===dis001){ ++$dis001; fputs($fp,"<?php $$vote=$dis001; ?>\n"); } if ($vote===hoge01){ ++$hoge01; fputs($fp,"<?php $$vote=$hoge01; ?>\n"); } flock($fp,LOCK_UN); fclose($fp); echo "dis123は".$dis123."点<br>"; echo "dis001は".$dis001."点<br>"; echo "hoge01は".$hoge01."点<br>"; ?> _________________________________ 処理: counter.php?vote=dis123ときたらif処理して$dis123に+1する ________________________ 今は三つだからまだ大丈夫ですが、これが増えてくると手間が多いです そこで上記の今現在の値の書き込みとIF処理の部分を代入など、なんらかの形で簡略化できませんでしょうか?大改編になっても結構です。 よろしくお願いします。 備考:PHP暦三日目です、ここまでなんだかんだがんばったと思う。

    • ベストアンサー
    • PHP
  • ファイル作成

    $fp = fopen($filename1,"a+"); flock($fp,LOCK_EX); fputs($fp,$kisai); flock($fp,LOCK_UN); fclose($fp); としてファイルがなかったら作成するようにして$kisaiの内容を保存するようにしました。 それで問題なく実行できます。 しかし文字コードがANSIで保存されてしまいます。 UTF-8で保存させるようにするにはどうしたらよいでしょうか

    • ベストアンサー
    • PHP
  • flockについて

    PHPを始めようと思っていきなりつまずいています。 flockについてなんですが <?php $fp = fopen("ファイル名","a"); flock($fp,LOCK_EX); fputs($fp,"aaa"); flock($fp,LOCK_UN); fclose($fp); ?> は正しいですが $fp = fopen("ファイル名","w") とかにしてしまうとファイルロックの意味がありませんよね (ロックする前にファイルを丸めてしまってて、このプロセスの後readすると実際と異なる値を読んでしまうから) で、この場合 (つまり"w"や"w+"をファイルオープンの引数にとってflockするとき) fopen の前に、ロックを示すためのディレクトリを作成しておいて、書き込んだ後にディレクトリを削除する、というような独自の仕組みを作る必要があると思うんですが、具体的にどういうソースになるか教えてください

    • ベストアンサー
    • PHP
  • ファイルの読み書きでエラー

    下記のようなプログラムでファイルからデータを読み、 データを加工して、ファイルに書き込んでいます。 しかし、頻繁にアクセスがあると、読み出しのエラーや ファイルの中身が消えてしまう症状も発生します。 (ファイルの中身が消えるのは読み出し時にデータが 読めないからかも知れません) エラーをなくす為にはどうしたら良いのでしょうか? 教えて下さい。 $cmdata = file($cmfile); //ファイルからデータを読む  ・  ・(データの加工)  ・ $fp = @fopen($cmfile,"w+"); flock($fp,LOCK_EX); for( $i=0; $i<count($cmdata); $i++ ) { fputs($fp, $cmdata[$i]); } //ファイルにデータを書く flock($fp,LOCK_UN); fclose($fp);

    • 締切済み
    • PHP
  • fputsで改行できない

    $construction='aaa'; $explanation='bbb'; define(DATA, './data'); $fp = fopen(DATA . '/' . $name, 'w') or die('ファイルを開けません'); flock($fp, LOCK_EX); fputs($fp, $construction . "\\r\\n" . $explanation) or die ('ファイルに書き込めません'); fclose($fp); 作成されたファイルを開いてみると aaa\r\nbbbと表示され、改行されません。 "\\r\\n"ではなく"\\n"のみにしても同様です。 二十引用符にしているのに、改行されません。 fputsに複数の変数を同時に入れ、それぞれの間に改行をいれるにはどうすればよいでしょうか? 文字コードはShift-JISです。 ご教示頂けると幸いです。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • file()を使う時のファイルロック

    たいていの場合は問題ないのですが、 アクセスカウンタ等の更新の激しい物の場合、 file()やfile_get_contents()でファイルを開き、 その内容を元にfopen()・flock()・fputs()等を使って書き込むと、 データが破損してしまう事があります。 これはロック中でもfile()等では開けてしまうのが原因だと思いますが、 file()等を使う際の排他処理はどのようにしたら良いのでしょうか。 ロック中は、fopen()の前で解放されるのを待つ仕様なようなので、 $fp=fopen("ロック用ファイル","r"); flock($fp,LOCK_EX); ~複数のファイルの読み書きを含めた、様々な処理~ fclose($fp); としてみたのですが、これで排他処理は完璧になるでしょうか? これまでは、 1. ロック用ファイルが存在する場合、なくなるまでsleep() 2. 空のロック用ファイルを作成 ~複数のファイルの読み書きを含めた、様々な処理~ 3. ロック用ファイルを削除 としていたのですが、これでは度々破損してしまいました。 「1」と「2」の間で、新しいプロセスが「1」に割り込んで来てしまうせいでしょうか。 そうだとすれば、fopen()とflock()の間でも 同じ事が起きてしまう気がするのですが、どうなんでしょうか。

    • 締切済み
    • PHP
  • 新規でファイルを作成したい

     お世話になっております。  PHPで新規でファイルを作成する方法がうまくいかないのでおしえてください。  fopen関数で、ファイルを開こうとするとき解説書にあるように、「ファイルがなければ新規で作成」というモードを使用しているのですが、このファイルが作成されません。  新規でファイルを作成するモードは、"w" "a" "a+"の筈ですが…。 $temp_file_open = fopen("temp.txt", "w"); flock($temp_file_open, LOCK_EX); $temp_return = fputs($temp_file_open, "$name\n"); flock($temp_file_open, LOCK_UN); fclose($temp_file_open);  このような形で単純に書いているのですが、なかなかうまく行きません。Perlではumaskの設定などが必要ですが、PHPでも必要なのでしょうか?  もし足りない点、または初心者が陥りやすい点を指摘していただけるとありがたいです。

    • ベストアンサー
    • PHP
  • fopenとfile_put_contents

    ファイルを操作する関数「fopen」と「file_put_contents」を勉強していて 不思議に思いました。 「fopen」を使ったファイルに書き出す場合 「fopen」→「flock(LOCK_EX)」→「fputs」→「flock(ロック解除)」→「fclose」の 流れが必須になるようですが 「file_put_contents(FILE_APPEND | LOCK_EX)」の場合、 この関数一つで同じような処理されるようですが ロックやロックの解除、書き込んだファイルを閉じるなどの 役割がすべて補われるのでしょうか? 「file_get_contents」も同じだような役割りのようで 手間をかけて複雑になってしまう「fopen」を使う理由は あるのでしょうか? 処理工程など多少の違いの説明は読んでみたのですが 複雑になる「fopen」を使う必要性が分かりません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう