Использование html с тегами стиля в php-коде

118
17

Мне было предоставлено следующее в качестве шаблона для использования в электронном письме. Я использую phpmailer для отправки по почте, но у меня проблема с тем, как начинаются и заканчиваются теги стиля, поскольку они конфликтуют с php. Если я пройду через свой шаблон, я смогу переместить все стили в таблицу стилей или использовать классы и поместить стили в верхней части страницы, но я не хочу этого делать, если мне действительно не нужно.

Ниже приведен общий пример того, что происходит с кодом. Имена шрифтов завернуты в "s", поэтому открывающие и закрывающие теги стиля - это столкновение с открывающимися и закрывающимися тегами php. Я не могу найти способ обойти его, как если бы я положил, style = "" font-name "," another-font "" это не будет работать, если я использую на всех php, тогда прикручивается.

Что происходит в php-mailer, содержимое формы объявляется как

$body = '<span style='font-size: 13.5pt;font-family:"Georgia","serif";color:white'>some content</span></html>';

спросил(а) 2012-01-13T16:16:00+04:00 8 лет, 10 месяцев назад
1
Решение
92

Вам нужно избегать ваших котировок. Пример:

$body = '<div style=\'background:#000;\'><p>srs business here</p></div>';

ответил(а) 2012-01-13T16:20:00+04:00 8 лет, 10 месяцев назад
42

Не делай этого.

Ваша проблема заключается не в использовании HTML/CSS в PHP, а в том, что ваши строки в основном не строятся сами по себе, вам нужно избежать кавычек, как сказал @ddubs.

Тем не менее, выработав "Не делайте этого", вы не должны смешивать свой код HTML и PHP таким образом. Хотя это, конечно, не требуется, вы должны как можно больше отделять свою логику от презентации.


Вы можете просто выпрыгнуть из PHP с закрывающим тегом и вернуться обратно, когда вам это нужно, например (на основе вашего):

// code code code ...
?>
<span style="font-size: 13.5pt; font-family: 'Georgia', serif; color: white">
<?php echo $variable_from_code ?>
</span></html>

Пока я нахожусь на всем крестовом походе, вы также не должны использовать встроенные стили ;-)

ответил(а) 2012-01-13T16:32:00+04:00 8 лет, 10 месяцев назад
42

Вы также можете работать с HEREDOC (http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc). Это сэкономит вам много грязного кода. Пример:

$string = <<<SOMELABEL
Here you can put your <span style='font-family: arial, helvetica, sans-serif'>formatted code</span>
SOMELABEL;

А потом:

$body = $string;

ответил(а) 2012-01-13T16:29:00+04:00 8 лет, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема