- ベストアンサー
.phpで.htmlを作る。
「index.htmlへのアクセスをindex.phpへ飛ばす」や「index.phpをブラウザで見たらindex.htmlと変わらないように見える」ではなく、index.phpでindex.htmlというファイルを自動で作りたいのですが、このようなことは可能でしょうか? また、10分ごとにindex.htmlがindex.phpによって更新されるということはできるでしょうか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>htmlをphpにしたら検索にかからなくなった 検索とは 検索エンジンのことでしょうか? それでしたら htmlタグを書き忘れているだけかも phpを確認してみてください もし、検索エンジンでなく全文検索Namazuとかの検索でしたら、使ったことがないのでわかりません。 検索エンジンで検索にかからないでしたら phpの出力が <html><head><metaはココ></head><body>内容</body></html>の構成になっていないとか? description、Keywordsを指定し忘れている? こちらを参考に http://www.tohoho-web.com/html/meta.htm →保存 ( http://jp.php.net/manual/ja/function.file-put-contents.php ) file_put_contents($FileName, $data); 保存ファイルを読み込みながら出力 ( http://jp.php.net/manual/ja/function.file-get-contents.php ) ( サイズが大きい場合は、一定バイト読み込みながらループで出力した方がいいでしょう ) まとめてポイ!! echo file_get_contents($FileName); テンプレートクラスでしたら使用例のコメントも含めて140行くらいで作った物を もっているのですが、 ここにアップするにはちょっと行数がおおいから 無理っぽい。 (別質問で テンプレートクラスについて聞いてもらう方がいいかも)
その他の回答 (6)
- chasu_2005
- ベストアンサー率25% (1/4)
やり方は色々あると思いますがindex.htmlをひとまず別の名前のテンプレートにしてfopen()で読み込んで一部を変更してから別ファイルポインタでindex.htmlを出力する方法や。 テンプレートをインクルードファイルに入れておき書き換える変数とおりまぜてindex.htmlを出力するとか。やり方はどうでも出来るということは断言できます。 でもページの一部をランダム表示ということであればそこまでしなくてもその一部をインラインフレームにして。。インラインフレームに表示されるhtmlファイルを書き換えるほうが作業的にもサーバ的にも負担が少なくよいかもです。 DBから取り出した結果<これについてはPHPではお手の物なのであえて説明はしませんね^^
お礼
回答ありがとうございます。 インラインフレームは今のところ考えておりません。 すみません!
質問者 さんは 専用サーバーを使うのでしょうか? 共有サーバーでしたら /etc/crontab とかはいじれないところが多いので よく調べてから 決めて下さいね。
お礼
回答ありがとうございます。 サーバーはロリポッ○です。 どうやらロリポッ○ではcronがいじれないようです。(*o*)
- chasu_2005
- ベストアンサー率25% (1/4)
おそらく自動更新をかけようとたくらんでいらっしゃるのでしょうかw??? PHPにはファイル関数があるからそれを使えばよいではないでしょうかw 10分ごとってところはサーバのバックアップなどに使う手法で定期的にそのPHPプログラムを起動してやればできますよ^^
お礼
回答ありがとうございます。 「ページの一部をランダム表示にしたり、DBから取り出した結果を表示した」phpをindex.htmlにしたいのです。 ファイル関数でってことは定期的にfopen( )などでPHPプログラムを起動ってことでしょうか???
- yambejp
- ベストアンサー率51% (3827/7415)
index.phpは必要ないですよね? 10分ごとにindex.htmlが更新されてしかも index.htmlを参照したいのであれば、 shスクリプトをcronで実行すればいいのだし。 どこでindex.phpが活躍するのかわかりません。 よくやりたいことを整理して、仕様をきめて みてください。
お礼
回答ありがとうございます。 「ページの一部をランダム表示にしたり、DBから取り出した結果を表示した」phpをindex.htmlにしたいのです。
index.phpでindex.htmlなど任意のファイルを自動で作ることは可能です。 >10分ごとにindex.htmlがindex.phpによって更新される 間隔が短いので ・他のPCから定期アクセス や ・サーバーの定期実行 よりは、 index.htmlより phpをメインにしたほうがいいと思います。 きらわれている [index.htmlと変わらないように見える] にされるほうがいいとおもいます。 単純なテンプレートクラスを利用するだけでも プロバイダみたいな動的コンテンツを簡単につくれます。 単に拡張子がきらいなだけでしたらサーバーの設定によっては phpをhtml拡張子で実行できるようにすることもできます。 見かけ上phpだとわかりませんから。 (そこに更新php呼ぶ判定をいれておくとか) また 生成にかかる更新処理時間をきにして index.htmlを生成してわけたいだけでしたら、 1.更新の必要の判定 (現在時刻-生成ページのタイムスタンプ=10分以上) true→ 更新 → ページ生成 → 保存 → 2へ false→ 必要なし → 2へ 2.生成されたページ(保存ファイル)を読み込みながら 出力 だと 10分間隔での更新は可能だと思います。
お礼
回答ありがとうございます。 htmlをphpにしたら検索にかからなくなったんで、phpに原因があるのではと思い、htmlで作りたくなりました。 できれば、 ---------------------------------- 1のページ生成→保存 2の保存ファイルを読み込みながら出力 ---------------------------------- の方法を教えていただきたく思っております。
- tecinfo
- ベストアンサー率52% (32/61)
可能です。 >「index.htmlへのアクセスをindex.phpへ飛ばす」 なら、.htaccessで RedirectMatch ^/index.html http://example.com/index.php と記述してあげれば、index.htmlへのアクセスはindex.phpへ飛びます。 >index.phpでindex.htmlというファイルを自動で作りたいのですが、このようなことは可能でしょうか? この場合は、 <?php //index.htmlを作成するプログラム ~~ 省略 ~~ //作成したhtmlファイルへ飛ばす。 header("Location: http://example.com/index.html"); ?> とheader関数を使うことで、 直前に作成したindex.htmlへ飛ばしてあげることができます。 >また、10分ごとにindex.htmlがindex.phpによって更新されるということはできるでしょうか? これはindex.phpにindex.htmlを作成するスクリプトを組んでおいて、cronで % crontab -e 10 * * * * /usr/bin/php -q /スクリプト/までの/path/index.php と設定してあげれば10分毎にindex.htmlが生成されます。
お礼
回答ありがとうございます。 「index.htmlへのアクセスをindex.phpへ飛ばす」じゃないんです・・・。 index.htmlを作成するプログラムってどのようなものでしょうか? 自分でも調べてみますが、もう少し具体的に教えてもらいたいです。 使っているレンタルサーバーではcronがいじれないそうなので・・・他の方法を・・。
お礼
回答ありがとうございます。 <html><head><meta></head><body>内容</body></html>の構成になっています。 検索とはgoogleなどのことです。 今回の「.phpで.htmlを作る」は可能なようですが、私の能力ではあまりにも難しすぎるのであきらめることにします。 ありがとうございました。