簡體   English   中英

PHP的str_replace無法正常工作?

[英]PHP's str_replace not working?

我正在嘗試做一個簡單的任務,將電子郵件模板存儲到數據庫中,進行檢索,並在發送電子郵件之前在模板中填充變量。

我正在使用str_replace但是由於某種原因它對我不起作用。 更復雜的是,它適用於以下我的模板變量之一, {{date}}確實被填充,而其他所有變量都被跳過。

這不是我的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>

您一直在從頭開始重新創建$admin_body ,放棄先前的str_replace()替換:-D

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM