-1

電子メール テンプレートをデータベースに保存し、それを取得して、電子メールを送信する前にテンプレートに変数を入力するという簡単なタスクを実行しようとしています。

使用していますstr_replaceが、何らかの理由で機能しません。さらに複雑なことに、以下のテンプレート変数の{{date}}1 つで機能します。1 つは入力されますが、他のすべてはスキップされます。

POST 変数が入力されていないことは問題ではありません。実際のテキスト文字列を渡すこともできstr_replaceますが、それでも「テンプレート変数」が見つからず、それらが置き換えられません。デートだけです。

なぜそのような奇妙な振る舞いをするのでしょうか? 私が見る限り、日付のものは何も違いはありませんか?

テンプレート

$admin_template = '<table>
    <tr>
      <td><strong>Name:</strong></td><td>{{name}}</td>
    </tr>
    <tr>
      <td><strong>Email:</strong></td><td>{{email}}</td>
    </tr>
    <tr>
      <td><strong>Website:</strong></td><td>{{website}}</td>
    </tr>
    <tr>
      <td><strong>Phone:</strong></td><td>{{phone}}</td>
    </tr>
    <tr>
      <td><strong>Source:</strong></td><td>{{source}}</td>
    </tr>
    <tr>
      <td><strong>Budget:</strong></td><td>{{budget}}</td>
    </tr>
    <tr>
      <td><strong>IP:</strong></td><td>{{{ip}}}</td>
    </tr>
    <tr>
      <td><strong>Date Submitted:</strong></td><td>{{date}}</td>
    </tr>
    <tr>
      <td><strong>Message:</strong></td><td>{{message}}</td>
    </tr>
  </table>';

テンプレートを処理するコード

// Process Admin Template
$admin_body = str_replace('{{name}}', $name, $admin_template);
$admin_body = str_replace('{{email}}', $mailFrom, $admin_template);
$admin_body = str_replace('{{phone}}', $_POST["phone"], $admin_template);
$admin_body = str_replace('{{website}}', $_POST["website"], $admin_template);
$admin_body = str_replace('{{message}}', $_POST["message"], $admin_template);
$admin_body = str_replace('{{budget}}', $_POST["budget"], $admin_template);
$admin_body = str_replace('{{source}}', $_POST["source"], $admin_template);
$admin_body = str_replace('{{ip}}', $_SERVER['REMOTE_ADDR'], $admin_template);
$admin_body = str_replace('{{date}}', date("Y-m-d H:i:s"), $admin_template);

処理後の実際の出力

// Actual Output...
<table>
<tr>
  <td><strong>Name:</strong></td><td>{{name}}</td>
</tr>
<tr>
  <td><strong>Email:</strong></td><td>{{email}}</td>
</tr>
<tr>
  <td><strong>Website:</strong></td><td>{{website}}</td>
</tr>
<tr>
  <td><strong>Phone:</strong></td><td>{{phone}}</td>
</tr>
<tr>
  <td><strong>Source:</strong></td><td>{{source}}</td>
</tr>
<tr>
  <td><strong>Budget:</strong></td><td>{{budget}}</td>
</tr>
<tr>
  <td><strong>IP:</strong></td><td>{{{ip}}}</td>
</tr>
<tr>
  <td><strong>Date Submitted:</strong></td><td>2013-05-26 05:01:14</td>
</tr>
<tr>
  <td><strong>Message:</strong></td><td>{{message}}</td>
</tr>
</table>
4

1 に答える 1

4

$admin_body以前の置換を破棄して、常にゼロから再作成していますstr_replace():-D

于 2013-05-26T05:11:44.717 に答える