1

私は、PHPを使用して簡単なWebアプリを構築しようとしている初心者のコーダーです。送信するたびに変化する変数を持つHTMLメールを送信しようとしています。電子メールを開始するコードは「email.php」であり、次のものが含まれています。

$body = file_get_contents('welcome/green2.html.php');

'green2.html.php'ファイル内に、入力する必要のある$highlightという変数があります。$highlight変数は'email.php'ファイル内で定義されています。'green2.html.php'ファイル内に単純に追加しようとしましたが、解析されていません。出力時に変数があるべき場所に空白が表示されます。

また、「email.php」ファイル内に「welcome/green2.html.php」を含めました。エコーすると、$highlight変数が結果のページに表示されますが$bodyをエコーし​​た場合は表示されません。

どんな助けでも大歓迎です!

4

3 に答える 3

5

str_replace関数を試しましたか?http://php.net/manual/en/function.str-replace.php

HTMLでプレースホルダーを追加し(たとえば、名前の場合は#name#、電子メールの場合は#email#)、ファイルのコンテンツを読み込んだら、文字列置換機能を使用します。

$bodytag = str_replace("#name#", $name, $myfile);

于 2012-07-27T19:27:22.493 に答える
1

を介してファイルをロードしfile_get_contents()ても、PHPによってファイルが解析されることはありません。PHPコードが含まれているかどうかに関係なく、静的ファイルとしてロードされるだけです。

PHPで解析したい場合は、includeまたはrequireそれを行う必要があります。

しかし、メール用のテンプレートシステムを作成しようとしているようです。これを実行している場合は、解析するPHPコードとしてではなく、プレースホルダーマーカーを使用し、str_replace()または同様の関数を使用してメインプログラムから文字列に変数を挿入することをお勧めします。

お役に立てば幸いです。

于 2012-07-27T19:35:28.077 に答える
0

http://php.net/manual/en/function.sprintf.phpを使用して、変数の代わりに%sをコードに入れてコンテンツを読み取り、文字列を入れたい変数とともにsprintfに入れます。これがお役に立てば幸いです。

于 2012-07-27T19:36:16.470 に答える