powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как в php использовать шаблон для письма?
15 сообщений из 15, страница 1 из 1
Как в php использовать шаблон для письма?
    #39644342
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Хочу слать письма, чтобы шаблон письма формировался с html файла, гуглил по разному: send php html template и т д, но все результаты - формирование шаблона прямо в коде.

В дотнете вот как удобно:

Код: c#
1.
2.
3.
4.
5.
6.
7.
string body,   Title;
                    using (var sr = new System.IO.StreamReader(Server.MapPath("\\App_Data\\EmailTemplates\\") + "CabinetGreated.html"))
                    {
                        body = sr.ReadToEnd();
                    }

string messageBody = string.Format(body, "Организатор", email, password, Id, Title);



CabinetGreated.html - joxi.ru/KAgMW4I4XEP4ml

как можно сделать такое же в php?
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644363
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы уверены, что это php ?
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644364
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettВы уверены, что это php ?
нет, я указало что "В дотнете вот как удобно:".....

и спросил как такую задачу решить в php
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644370
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, что-то я сегодня не выспался :)
Так а в чем проблема, тут всего два момента:
1. чтение файла в переменную http://php.net/manual/ru/function.file-get-contents.php
2. printf http://php.net/manual/ru/function.sprintf.php
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644385
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettДа, что-то я сегодня не выспался :)
Так а в чем проблема, тут всего два момента:
1. чтение файла в переменную http://php.net/manual/ru/function.file-get-contents.php
2. printf http://php.net/manual/ru/function.sprintf.php

спасибо, похоже оно:

Код: php
1.
2.
3.
4.
5.
6.
7.
<?php
$num = 5;
$location = 'дереве';

$format = '%d обезьян сидят на %s';
echo sprintf($format, $num, $location);
?>
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644397
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettДа, что-то я сегодня не выспался :)
Так а в чем проблема, тут всего два момента:
1. чтение файла в переменную http://php.net/manual/ru/function.file-get-contents.php
2. printf http://php.net/manual/ru/function.sprintf.php


HettДа, что-то я сегодня не выспался :)
Так а в чем проблема, тут всего два момента:

2. printf http://php.net/manual/ru/function.sprintf.php

похоже не канарез, так как шаблон письма:

Код: html
1.
2.
3.
4.
5.
6.
7.
.....
 <table width="100%" cellpadding="0" cellspacing="0" style="min-width:100%;">
                    <tr>
                      <td width="100%" style="min-width:100%;background-color:#58585A;color:#FFFFFF;padding:30px;">
                        <p style="font-size:16px;line-height:20px;font-family:Georgia,Arial,sans-serif;text-align:center;">2017 @ COPYRIGHT - EDMDESIGNER</p>
                      </td>
.....



там символы % есть, поэтому ошибка - Warning: sprintf(): Too few arguments in

подсказали реплейсить:

Код: php
1.
2.
3.
4.
5.
6.
foreach ( $args as $key => $value ) {
          if ( ! is_array( $value ) && ! is_object( $value ) ) {
            $search  = '{$' . $key . '}';
            $content = str_replace( $search, $value, $content );
          }
        }
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644409
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем какие-то реплейсы, когда PHP сам умеет подставлять значения переменных....

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?php
$num = 5;
$location = 'дереве';

$result = <<<TPL
{$num} обезьян сидят на {$location}
TPL;

echo $result;
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644412
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleЗачем какие-то реплейсы, когда PHP сам умеет подставлять значения переменных....

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?php
$num = 5;
$location = 'дереве';

$result = <<<TPL
{$num} обезьян сидят на {$location}
TPL;

echo $result;



спасибо, а вы не могли бы написать с учетом того, что в моей переменной содержиться html шаблон письма:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?php
$num = 5;
$location = 'дереве';

$EmlTemplate = file_get_contents('/wp-content/plugins/registration_wpforms/EmlTemplate');

$result = ????

echo $result;
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644429
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnick,

Если шаблон в переменной - тогда eval() использовать.
Но, судя по коду, шаблон в файле живет. Тогда достаточно заинклюдить этот файл.
Разумеется, и в том и в другом случае файл шаблона должен содержать оператор присваивания.
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644437
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleSputnick,

Если шаблон в переменной - тогда eval() использовать.
Но, судя по коду, шаблон в файле живет. Тогда достаточно заинклюдить этот файл.
Разумеется, и в том и в другом случае файл шаблона должен содержать оператор присваивания.

да, шаблон в файле, так как редактировать шаблон в файле с пхп кодом неудобно.

А не могли бы бросить пример ( заинклюдить этот файл. / файл шаблона должен содержать оператор присваивания)
я то с пхп никогда не имел дело
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644440
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleSputnick,

Если шаблон в переменной - тогда eval() использовать.
Но, судя по коду, шаблон в файле живет. Тогда достаточно заинклюдить этот файл.
Разумеется, и в том и в другом случае файл шаблона должен содержать оператор присваивания.

В таком случае нужно будет чтобы каждая переменная была заключена в <?php ?> (<?= ?>)

Код: php
1.
2.
$a = 'para bellum';
$data = require('template.html');




template.html

Код: php
1.
Si vis pacem,  <?= $a ?>
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644454
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант, можно взять smarty, twig, jinja и т.п. готовое решение для шаблонизации
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644578
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnickредактировать шаблон в файле с пхп кодом неудобноПочему неудобно, если не секрет, текстовый редактор без комбинированной php+html подсветки кода или есть более весомые тому причины?
Вот сваливать шаблоны и код в одну кучу не годится. Однако, "на коленке" чего только ни делают.

Sputnickа вы не могли быМогли бы. Ловите лог из консоли.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
$ cat ./test.php                                                                                                                              
<?php                                                                                                                                                        
$num = 5;                                                                                                                                                    
$location = 'дереве';                                                                                                                                        
require 'template.tpl';                                                                                                                                      
echo $result;                                                                                                                                                
$ cat ./template.tpl                                                                                                                          
<?php $result = <<<TPL                                                                                                                                       
<div>                                                                                                                                                        
{$num} обезьян <i>сидят</i> на <b>{$location}</b>                                                                                                            
</div>\n                                                                                                                                                     
TPL;
$ php -f ./test.php 
<div>
5 обезьян <i>сидят</i> на <b>дереве</b>
</div>

Впрочем, если действительно проблемно редактировать смесь php+html (в таком варианте шаблон таки пхпшный), тогда смотрите сами, что удобнее для конкретного случая, инклюд или чтение файла + eval().


HettВ таком случае нужно будет чтобы каждая переменная была заключена в <?php ?> (<?= ?>)Да ну можно, если очень хочется... А зачем?
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644581
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы можно было обрабатывать переменные, например htmlspecialchars и т.п.
В случае с завернутым шаблоном в одну строку возможности будут меньше.
...
Рейтинг: 0 / 0
Как в php использовать шаблон для письма?
    #39644592
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettЧтобы можно было обрабатывать переменные, например htmlspecialchars и т.п.
В случае с завернутым шаблоном в одну строку возможности будут меньше.Тады уж в сторону полноценного шаблонизатора со всевозможными модификаторами. Однако, чтобы в единственном шаблоне подставить десяток переменных, не вижу смысла городить огород. Проще подготовить в переменных контент к публикации.

Другой вопрос.
Судя по "/wp-content/", у автора Вордпресс используется.
Нет ли в нем самом шаблонизатора с возможностью вернуть контент как строку? А то, может быть, зря тут изобретением лисапедов занимаемся.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как в php использовать шаблон для письма?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]