№3-3

Как дописать стили в атрибут style тегов HTML через PHP

Данный вопрос возникает при верстке писем т.к. стили прописанные в в почтовых сервисах и программах не работают, а в ручную прописывать стили каждому тегу вручную долго и не удобно. Далее представлены варианты как автоматизировать этот процесс.

Пример HTML кода в котором нужно добавить стили.

$html = ' 

Текст 1

Текст 2

';

Массив тегов и стилей которые нужно добавить.

$tags = array( 'span' => 'color: #000;', 'p' => 'padding: 0;', 'img' => 'border: none;' );

Вариант на регулярных выражениях

Функция ищет теги, из них достает атрибуты, дописывает их и делает замену в тексте.

function add_html_style($html, $tags) < foreach ($tags as $tag =>$style) < preg_match_all('//i', $html, $matchs, PREG_SET_ORDER); foreach ($matchs as $match) < $attrs = array(); if (!empty($match[1])) < preg_match_all('/[ ]?(.*?)=[\"|\'](.*?)[\"|\'][ ]?/', $match[1], $chanks); if (!empty($chanks[1]) && !empty($chanks[2])) < $attrs = array_combine($chanks[1], $chanks[2]); >> if (empty($attrs['style'])) < $attrs['style'] = $style; >else < $attrs['style'] = rtrim($attrs['style'], '; ') . '; ' . $style; >$compile = array(); foreach ($attrs as $name => $value) < $compile[] = $name . '="' . $value . '"'; >$html = str_replace($match[0], '', $html); > > return $html; > echo add_html_style($html, $tags);

Результат работы функции

Текст 1

Текст 2

Вариант на phpQuery

  • Приводит HTML код к валидному виду — закрывает незакрытые теги, удаляет лишние пробелы, переводит названия тегов и атрибутов в нижний регистр.
  • Заменяет мнемоники на символы.
require '/phpQuery.php'; $dom = phpQuery::newDocument($html); foreach ($tags as $tag => $style) < $elements = $dom->find($tag); foreach ($elements as $element) < $pq = pq($element); $attrs = $pq->attr('style'); if (empty($attrs)) < $pq->attr('style', $style); > else < $pq->attr('style', rtrim($attrs, '; ') . '; ' . $style); > > > echo (string) $dom;

Результат

Текст 1

Текст 2

Вариант на классе DOMDocument

В данном случаи не подходит т.к. к верстке добавляется теги , , .

$doc = new DOMDocument('1.0', 'UTF-8'); @$doc->loadHTML($html); foreach ($tags as $tag => $style) < $elements = $doc->getElementsByTagName($tag); foreach ($elements as $element) < $attrs = $element->getAttribute('style'); if (empty($attrs)) < $element->setAttribute('style', $style); > else < $element->setAttribute('style', rtrim($attrs, '; ') . '; ' . $style); > > > echo html_entity_decode($doc->saveHTML());

Результат

   

Текст 1

Текст 2

Источник

Change Font Size and Color in PHP

Change Font Size and Color in PHP

PHP doesn’t have built-in functionality for changing the font size or color. We can use HTML and CSS with PHP to change the font size and color.

This tutorial demonstrates how to change font size and color using PHP.

Change the Font Size and Color Using PHP

We can echo an HTML tag with CSS to change the font size and color of the text.

php $string= "Welcome! This page doesn't exist!"; echo $string."
"
;
//Change the fontsize using PHP, HTML and css through echo echo ' ' . $string. ', New Page'; //Change the font color using PHP, HTML and css through echo echo "
"
;
echo ' ' . $string. ', New Page'; ?>

The code above prints three strings. One with original size and color, second with 50px font-size, and third with red font color.

Change Font Size and Color in PHP

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

Источник

PHP: изменение цвета текста на основе значения $ value

Каков самый простой способ изменить цвет текста на основе переменной?

Например: если $ var находится между 1-5, зеленым. Между 6-10, Оранжевый. Больше 11, Красный.

function getProperColor($number) < if ($var >0 && $var = 6 && $var = 11) return = '#FF0000'; > 

И используйте его вот так:

$color = "#000000"; if (($v >= 1) && ($v = 6) && ($v = 11) $color = "#FF0000"; echo "Text"; 

Значения цвета индексируются константами? Я бы подготовил хэш-карту

$colorMap[0] = '#00FF00'; //green $colorMap[1] = '#0000FF'; //blue $colorMap[2] = '#FF0000'; //red $colorMap[3] = '#330000'; //dark red 

и так далее. Затем используйте CSS

Вам нужно фактически использовать инструкции elseif, если вы собираетесь использовать набор операторов if,

Я буду использовать цвета CSS, а также подчеркнуть тот факт, что номер 11 не соответствует ни одному цвету в соответствии с вашими правилами, что делает большую часть ответов недопустимыми 🙂

=1 && $n<=5) return "green"; // Is number between 6 and 10? if($n>=6 && $n<=10) return "orange"; // Is number greater than 11 if($n>11) return "red"; // Return default (black) for all other numbers return "black"; > ?> Text 

Что-то вроде этого трио операторов if:

if ($var < 10) $color = '#FF8000'; if ($var < 6) $color = '#00FF00'; if ($var >= 10) $color = '#FF0000'; echo "This text is colored."; 

Простое решение может состоять в том, чтобы сделать что-то вроде этого …

Тернарный оператор для вашего простого примера.

Я бы использовал классы CSS вместо встроенного стиля цвета … Пусть CSS работает …

Если ни один из этих ответов не является тем, который вы ожидаете, что именно вы пытаетесь выполнить? Можете ли вы дать больше информации?

Предполагая, что один работает с диапазонами, это довольно гибко:

function getProperColor($range, $value) < foreach($range as $key =>$color) < if ($value return $color; > $colorRange = array( 5 => 'green', 10 => 'orange', 11 => 'red' ); for($i=-1;$i
-1:green 1:green 3:green 5:green 7:orange 9:orange 11:red 13:red 15:red 
   

Hello Welcome.I am 0 && $var<=5) echo '

'; else if($var>=6 && $var'; else echo '

'; ?> I am a Developer.

$color="green"; $text="foo"; echo wrapColor($color, $text); function wrapColor($color, $text)< return "$text"; > 

Источник

Не понятно, как изменить цвет текста

Пытаюсь изменить цвет текста выводящегося через функцию — выводит черным «Здравствуйте!». При этом при простом выводе — цвет красный «PHP работает!».
Почему так? Как сделать красным во втором случае?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
      $color = "red"; print "

$color>PHP работает!"; // Приветствие на русском языке function Ru() { print "

$color>Здравствуйте!"; } $language = "Ru"; // Выбрали русский язык $language(); // Выполнение функции-переменной ?>

Как изменить цвет текста в консоли
Как изменить цвет текста в консоли в C#?Заранее спасибо)

Как изменить цвет текста и фона
Куда мне вставить изменения цвета текста и фона 🙁 ? Подскажите,пожалуйста. Код рабочей.

Как изменить цвет текста в CStatic?
Есть компонент IDC_STATIC1, которому соответствует переменная m_IDC_STATIC1 типа CStatic. Как.

Как изменить цвет текста в textarea
Здравствуйте, помогите плз, не как не могу поменять цает текста в textarea, пробовал <textarea.

Источник

Читайте также:  Что такое pool java
Оцените статью