Intereting Posts
Не удалось получить символы с акцентом UTF-8 из Access через PDO_ODBC Возвращение заголовка в виде массива с помощью Curl Подавление ошибок PHP игнорируется Каков наилучший метод для создания ваших собственных циклов WordPress? Загрузите doc, pdf, xls и т. Д. Из приложения android на php-сервер Каков наилучший способ убедиться, что два человека не редактируют одну и ту же строку в моем веб-приложении? cURL возвращает 404, а страница находится в браузере. Как отправить массовую почту в cakephp без использования sendgrid Почему я не вижу выхода из фейерверка? fetch_array с подготовленным заявлением? PHP MYSQL? Пытаетесь подключиться к сайту ASPX с помощью CURL? не удалось сохранить одно изображение вместе с несколькими изображениями в codeigniter Как получить ответ с помощью cURL в PHP Не удается добавить новые строки в поле оповещения JavaScript? Есть ли простой способ обнаружить пересечения сегментов линии?

PHP html электронная почта, используя html-шаблон

поэтому я пытаюсь сделать html-почту sytem и мой html, я хочу быть шаблоном, хранящимся в отдельном файле, например:

<div clas="headr"></div> <div class="content"></div> <div class="footer"></div> 

когда я хочу отправить почту, я хочу, чтобы содержимое моей почты (из входной формы) включалось в этот div.content, а затем отправлял весь html (шаблон + отправленный текст). Каков наилучший способ сделать это? я думаю, что-то вроде:

  1. импортируйте шаблон в мой php, который отправляет почту
  2. найдите div с классом «content» и добавьте в него представленный текст
  3. Отправить письмо

но я не знаю, как «найти» этот div и написать представленный текст в него.

Solutions Collecting From Web of "PHP html электронная почта, используя html-шаблон"

Как говорил Пекка, вы можете просто использовать str_replace для вставки данных в свой шаблон. Просто добавьте местозаполнитель:

 <div clas="header"></div> <div class="content">{{content}}</div> <div class="footer"></div> 

Затем замените местозаполнитель своим контентом:

 $content = 'Whatever you want to insert...'; $tpl = file_get_contents('yourtemplate.html'); $tpl = str_replace('{{content}}', $content, $tpl); mail($tpl, ...); 

Вы можете поместить PHP-скрипт внутри шаблона, а затем PHP сделать рендеринг, например:

template.html:

 <div clas="headr"></div> <div class="content"><?php echo $body; ?></div> <div class="footer"></div> 

Затем, чтобы загрузить его, в вашем PHP-коде:

 $body = "Put this into the content tag..."; ob_start(); include("template.html"); $email = ob_get_clean(); в $body = "Put this into the content tag..."; ob_start(); include("template.html"); $email = ob_get_clean(); 

Редактирование : в этом случае, возможно, слишком сложно использовать мой метод вместо простой замены, но если вместо замены всего сообщения электронной почты вам нужно иметь более сложный шаблон, это упростит его. Например:

 <table> <tr> <td>Name:</td> <td><?php echo $name; ?></td> </tr> <tr> <td>Email:</td> <td><?php echo $email; ?></td> </tr> </table> 

Он очень гибкий и не позволяет иметь слишком много переменных для замены и, что более важно, сохраняет html из вашего кода.

Используйте str_replace () для вставки содержимого в ваш шаблон.

Используйте класс, подобный PHPMailer, чтобы легко отправлять HTML-E-Mail.

Пожалуйста, ознакомьтесь с широким ответом на Programmers.StackExchange, который включает в себя различные подходы к шаблонам PHP email templating .

Простыми решениями PHP могут быть:

  • использование простых механизмов замены %placeholder% :
    • str_replace ,
    • preg_replace (отлично работает с заменой array )
  • простой шаблон PHP и условная логика ( короткие открытые теги в PHP и альтернативный синтаксис для структур управления )

Если вы хотите избежать использования заполнителей или кода PHP внутри вашего шаблона, вы можете взглянуть на phpQuery , который является портом PHP jQuery.

В вашем примере вы бы похожи на это (см. Документы ):

 <?php $body = 'The body of your email message'; $template = file_get_contents('template.html'); $email = pq('div.content').html($body); ?> 

Может показаться чересчур избыточным, но если вы намереваетесь добавить больше тех же функций на основе селектора CSS, og просто хотите, чтобы ваши грязные руки дизайнеров от PHP, это могло бы быть хорошим решением.