dポイントプレゼントキャンペーン実施中!

現在、あるサイトのTOPページをPHPを使用して一部動的に出力させています。(新着情報、バナーなど)。それをcronにより、1時間に1回、index.htmlの吐き出しを行いたいと思っています。 readfile関数で、元ファイルの読み込みは出来るのですが、<?php ~ ?>部分は解釈されずにそのまま出力されてしまいます。
PHPを解釈してくれてそれを変数に格納する方法はありませんでしょうか?
ご教授ください。よろしくお願い致します。

具体的には下記のとおりです。

index_original.html
---------------------------
<html>
<head>~~~</head>
<body>
<?php
require("新着情報を出力する.php");
?>
<hr>
<?php
require("バナーを出力する.php");
?>
</body>
</html>
---------------------------

cronで実行させたいスクリプト
---------------------------
<?php
$index_array = require("index_original.html");
# ↑のようなことが理想です。

# 配列 $index_array をindex.htmlに吐き出す処理

?>
---------------------------

A 回答 (3件)

こんな感じでどうでしょう?



<?PHP
ob_start();
require "index_original.html";
$str =ob_get_contents();
ob_end_clean();
print $str;
?>
    • good
    • 0
この回答へのお礼

yambejpさん、回答ありがとうございました。
返信遅くなってしまって申し訳ありません。

急遽不具合対応で追われてしまって本件に関して検証することも出来ませんでしたが、本日やっと検証することが出来ました。

ビックリしました。いとも簡単に出来てしまうとは…。
今まで5秒くらいかかって表示されていたページが1秒満たなく表示させることが出来ました。
ob_start() 初めて知りました。まだまだPHPは奥が深いですね。

本当にありがとうございました。

お礼日時:2007/01/13 20:19

<?php


$index_array = file_get_contents("http://*******.***/index_original.html");
?>

こんなので良いんじゃないかと思います。

この回答への補足

早速の回答ありがとうございます。
file_get_contents
も含めて、file(), readfile()も含めて、PHPの部分は

-------------------------------------------------------
<?php
require("common.php");
?>
<html>
<body>



-------------------------------------------------------
などのように単純にファイルの中身が展開されただけで、
PHPは実行されておりませんでした。

ソース部分の<?php ~ ?php>が展開され実行されるようなGET系の関数をご存知でしたら教えてください。

よろしくお願いします。

補足日時:2007/01/09 15:13
    • good
    • 0

簡単なのは、コマンドラインで動かすこと



# /usr/bin/php index.php > index.html

で出力が表示されるかと思いますが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
コマンドライン上からでは、PHPが実行できませんでした。
なぜ実行できないのかはこれから調査してみます。
うまく動いたら、この方法が一番よさそうです。
ありがとうございました。

お礼日時:2007/01/09 16:29

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