2012-04-11 14 views
1

私は別のファイルから集めたHTMLコードである$ codeの真ん中に変数$ allを配置したいと思います。私の現在のコードはこのようなものです。別の変数の内部で変数をレンダリングする方法は?

ob_start(); 
---code here--- 
$all = ob_get_clean(); 
$code = file_get_contents("file.txt"); 
echo $code; 

file.txtはこのようなものです。

<html> 
<head> 
<title>Title</title> 
</head> 
<body> 
---HTML code here--- 
$all 
---More HTML code--- 
</body> 
</html> 

は、私は$コードをエコーするとき、すべてがその中にレンダリングされる$ように何をすべきでしょうか?

+1

http://php.net/manual/messageformatter.formatmessage.php – KingCrunch

+0

"真ん中にいる"の位置を実際に識別するマーカーがありますか? $ allは実際にはfile.txtにありますので、$ allの内容をどこに入れるのかを知ることができますか? – used2could

答えて

4

を使用して、$allを値に置き換えます。

$code = str_replace('$all', $all, $code); 
+0

それはとてもシンプルですが、私はそれを前に考えなかったことに驚いています。ありがとうございました! – Student

+0

喜んで私は助けることができました:-) –

-1

RegExを使用してください。
'body'タグを 'body'タグ+あなたのvarで置き換えることができます。
ように:

echo preg_replace('/<body>/',"<body>$all",$code); 

しかし、あなたは$code

+0

''と '$ all'の間にいくつかのHTMLコードがあります。 –

+0

OPはあるコンテンツで_replace_ '$ all'を返し、bodyタグの後ろに_add_ new' $ all'を追加しません。ただし、正規表現は必要ありません。単純な文字列の置換はまったく同じです。 – KingCrunch

0

OPで、唯一の<body>タグが存在していることを確認する必要があり、彼の解決策を得たが、私はこれが同様に言及する価値があったと思いました。

あなたはこのような何かを行うことができ、あなたはHTMLファイル内にプレースホルダを持っていないが、あなたが特定の何かの後$allを挿入することがわかっている場合:

$all = ob_get_clean(); 
$code = file_get_contents("file.txt"); 
$after = "<input type=\"hidden\" value=\"something\" />"; 

$code = substr_replace($code, $all, strpos($code, $after)+strlen($after), 0); 

これは$code$afterを見つけるだろう、最後に移動し、$allを挿入します。

+0

これは知っておいてよかった、ありがとう! – Student

関連する問題