こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

インクルードファイル内にPHPコードを挿入してecho表示

処理が異なる2つのPHPファイルを一つのテンプレートファイルから
index.phpファイルへ表示させたいのですが、テンプレートファイル内に
css_echo.phpをインクルードさせたコードを書くとそのままソース上に表示されてしまいます。
どのような方法をとればいいかアドバイス下さい。

■条件としては、
・css.php/css_echo.phpの処理ファイルはそれぞれ別ファイルとしたい
・index.phpファイルは
<html>
<head>
<?php
require_once('./css_echo.php');//ブラウザを判別してCSSファイルを出力
?>
</head>
<body>
<?php
$temp = "./temp.html"; //このページのテンプレートファイル名パス
require_once('./echo.php');
?>
</body>
</html>
には書かない方法で対応したいです。



ファイルは以下です。
----------------------------------------------------------------------
テンプレートファイル(temp.html)
<html>
<head>
<!--問題はここです。 -->
<?php
require_once('./css_echo.php');//ブラウザを判別してCSSファイルを出力
?>
</head>
<body>
サンプル表示{この中はブラウザ判別して表示・非表示にする}
</body>
</html>


処理PHPファイル(echo.php)
<?php
$htm = file_get_contents($temp);
echo preg_replace('/[{}]/', '', $htm);// {}内を削除して表示
?>

ブラウザ判別用ファイル(css_echo.php)
<?php
//実際にはこの前にブラウザ判別し処理コード(省略)
echo "<link rel=\"stylesheet\" href=\"$dir$pc\" type=\"text/css\">\n";
?>


メイン表示用PHPファイル(index.php)
<?php
$temp = "./temp.html"; //このページのテンプレートファイル名パス
require_once('./echo.php');
?>

------------------------------------------------------------------------

投稿日時 - 2009-01-21 13:05:08

QNo.4648285

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

そのままソースに表示されるとは???

出力された状態で「ソースを表示」でHTMLがどうなってるか今一度確認してみたらどうだろう。

投稿日時 - 2009-01-21 14:51:11

補足

index.phpで表示されたページの「ソースを表示」で確認したら

<html>
<head>
<?php
require_once('./css_echo.php');//ブラウザを判別してCSSファイルを出力
?>
</head>
<body>
サンプル表示
</body>
</html>

とHTMLソースが表示されます。
<head></head>なのでソースを見ないとでませんが、<body>以下ならそのまま、文字として認識して表示されます。

投稿日時 - 2009-01-21 19:45:00

あなたにオススメの質問