Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как с помощью php заменять весь красный цвет шрифт, на другой 
V
    Опции темы
Drizhenko
Дата 20.4.2006, 05:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 13.1.2005

Репутация: нет
Всего: нет



Имеется html код, где прописано, что определенный шрифт будет красным цветом.
Также используется css стиль.

Подскажите, пожалуйста как с помощью php заменять весь красный цвет шрифта на другой. 
PM MAIL   Вверх
Ciber SLasH
Дата 20.4.2006, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 3
Всего: 67



Либо жёстко прописывать стили в тэги:
Код
echo "<h1 style='color: red'>ZZZ</h1>";

либо выдавать вместе с кодом ещё и таблицу стилей:
Код
echo "<style type='text/css'>\nh1 {color: red}\n</style><h1>ZZZ</h1>";

либо при построении всей страницы добавлять стили в раздел HEAD:
Код
echo <<< EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<style type='text/css'>
h1 {color: red}
</style>
</head>

<body>
<h1>ZZZ</h1>
</body>
</html>
EOD;
 
PM   Вверх
Drizhenko
Дата 20.4.2006, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 13.1.2005

Репутация: нет
Всего: нет



Это все, конечно хорошо. Но есть одно НО. Я не говорил, что красным цветом у меня заголовки. Красным цветом может быть любая ЧАСТЬ текста. Вот в чем проблема. 
PM MAIL   Вверх
IvanB
Дата 20.4.2006, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.5.2005
Где: Irkutsk

Репутация: 2
Всего: 5



Цитата(Drizhenko @  20.4.2006,  08:33 Найти цитируемый пост)
Это все, конечно хорошо. Но есть одно НО. Я не говорил, что красным цветом у меня заголовки. Красным цветом может быть любая ЧАСТЬ текста. Вот в чем проблема.  

И в чём собствнно эта проблема заключается? smile
Вставляй, что тебе Ciber SLasH написал, по границам нужного тебе текста.
Цитата(Ciber SLasH @  20.4.2006,  07:47 Найти цитируемый пост)
echo "<style type='text/css'>\nh1 {color: red}\n</style><h1>ZZZ</h1>";



Или вопрос в том, чтобы искать нужный текст и выделять его? smile 
--------------------
Закон отладки: Каждая последняя ошибка является предпоследней.
PM MAIL ICQ   Вверх
korob2001
Дата 20.4.2006, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 1
Всего: 61



Цитата

Я не говорил, что красным цветом у меня заголовки. Красным цветом может быть любая ЧАСТЬ текста. Вот в чем проблема. 

Ну а что мешает тебе установить нужный цвет для другой части текста?  smile Не знаю, правильно я поня вопрос или нет, вот написал такую таблицу умножения, которая при перезагрузке изменяет цвета.  smile
Код
<html>
  <head>
    <title>Таблица умножения</title>
  </head>
  <body>
    <style type="text/css">
        td { border-width: 2px; border-color: #000000; border-style: solid };
    </style>
    <table border="0" cellspacing="5" cellpadding="5">
    <?php
        $colors = Array('red','blue','green','yellow','black','gray','brown','violet','darkviolet');
        // Выводим таблицу умножения
        for ($i=1;$i<10;$i++) {
             echo "<tr>\n";
             for ($j=1;$j<10;$j++) {
                  // Инициализируем генератор случайных чисел
                  srand(microtime()*10000000);
                  //Получаем случайный цвет из массива
                  $color = array_rand($colors);
                  // Определяем цвет шрифта, в зависимости от выбранного цвета
                  $font_color = "#000000";
                  if (($color != 3) && ($color != 7)) {
                      // Цвет фона тёмный, значит устанавливаем светлый цвет шрифта
                      $font_color = "#ffffff";
                  }
                  echo "<td bgcolor='$colors[$color]' style='color: $font_color'>$i*$j=" . ($i*$j) . "</td>\n";
             }
             echo "</tr>\n";
        }
    ?>
    </table>
  </body>
</html>

Заметь, что там где цвет фона светлый, цвет шрифта остаётся чёрным, а там где тёмный, цвет шрифта изменяется на белый.     

Это сообщение отредактировал(а) korob2001 - 20.4.2006, 10:08


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Drizhenko
Дата 20.4.2006, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 13.1.2005

Репутация: нет
Всего: нет



Извиняюсь, что некоректно составил вопрос. Я не знаю в каком месте будет красный текст. Нужно его найти и поменять на другой. 
PM MAIL   Вверх
smartov
Дата 20.4.2006, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Код

$old_html = '<p style="color:red">test</p><font color="red">TEST!</font>';

$html = str_replace('red', 'blue', $old_html);
echo $html;
 
PM MAIL   Вверх
korob2001
Дата 20.4.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 1
Всего: 61



PHP генерит страницу на сервере, стало быть ты должен знать какого цвета у тебя будет тот или иной элемент. Если ты хочешь менять на клиенте, то возможно тебе нужен JavaScript. Вот немного подправил код с таблицей умножения.
Код
<html>
  <head>
    <title>Таблица умножения</title>
  </head>
    <script language="JavaScript" type="text/javascript">
        <!--//
            var oldb = oldf = "";
            function onColor(id) {
                 var element = document.getElementById(id);
                 oldb = element.style.backgroundColor;
                 oldf = element.style.color;
                 element.style.backgroundColor = "white";
                 element.style.color = "black";
            }
            function offColor(id) {
                 var element = document.getElementById(id);
                 element.style.backgroundColor = oldb;
                 element.style.color = oldf;
            }
        //-->
    </script>
  <body>
    <style type="text/css">
        td { border-width: 2px; border-color: #000000; border-style: solid };
    </style>
    <center>
    <table border="0" cellspacing="5" cellpadding="5">
    <?php
        $colors = Array('red','blue','green','yellow','black','gray','brown','violet','darkviolet');
        // Выводим таблицу умножения
        $count = 1;
        for ($i=1;$i<10;$i++) {
             echo "<tr>\n";
             for ($j=1;$j<10;$j++) {
                  // Инициализируем генератор случайных чисел
                  srand(microtime()*10000000);
                  //Получаем случайный цвет из массива
                  $color = array_rand($colors);
                  // Определяем цвет шрифта, в зависимости от выбранного цвета
                  $font_color = "#000000";
                  if (($color != 3) && ($color != 7)) {
                      // Цвет фона тёмный, значит устанавливаем светлый цвет шрифта
                      $font_color = "#ffffff";
                  }
                  echo "<td style='background-color: $colors[$color]; color: $font_color' id='tdx$count' onmouseover=\"onColor('tdx$count')\" onmouseout=\"offColor('tdx$count')\">$i*$j=" . ($i*$j) . "</td>\n";
                  $count++;
             }
             echo "</tr>\n";
        }
    ?>
    </table>
    </center>
  </body>
</html>

Всё как и прежде, но теперь при наведении указателя мыши на ячейки таблицы, они будут менять цвет заднего фона на белый и цвет шрифта на чёрный. Когда указатель мыши покидает ячейку, она востанавливает свои цвета.  

Это сообщение отредактировал(а) korob2001 - 20.4.2006, 12:06


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
z-END
Дата 20.4.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 5
Всего: 102



Цитата(korob2001 @  20.4.2006,  12:57 Найти цитируемый пост)
PHP генерит страницу на сервере

нет.. 
Цитата(Drizhenko @  20.4.2006,  06:53 Найти цитируемый пост)
Имеется html код, где прописано, что определенный шрифт будет красным цветом.
Также используется css стиль.

Т.е. есть какая-то HTML верстка... нужно пропарсить его и заменить все вхождения красного цвета на определенный 


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
korob2001
Дата 20.4.2006, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 1
Всего: 61



Цитата

нет.. 

А где он её генерирует???
Цитата(z-END @  20.4.2006,  09:04 Найти цитируемый пост)
Т.е. есть какая-то HTML верстка... нужно пропарсить его и заменить все вхождения красного цвета на определенный 

В таком случае открывать файл и парсить его перед выводом, хотя не понятно зачем? PHP прекрасно встраивается в HTML + есть такие прекрасные вещи, как include, include_once, require, require_once. Хотя может я чего-то не допонимаю. ;))))
Если вёрстка находится на том же сервере, почему бы не изменить цвет прямо в ней, один раз, вместо того, что бы парсить страницу при каждой её генерации?  

Это сообщение отредактировал(а) korob2001 - 20.4.2006, 12:23


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
z-END
Дата 20.4.2006, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 5
Всего: 102



Цитата(korob2001 @  20.4.2006,  13:22 Найти цитируемый пост)
 Хотя может я чего-то не допонимаю. ;))))

Именно так... например HTML-код может быть получен с другого сайта, который надо перекрасить...
 


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
клоп
Дата 20.4.2006, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

Репутация: нет
Всего: нет



Код

$out = str_replace("color=#ff0000", "color=#твой цвет", $out);
 
--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
smartov
Дата 20.4.2006, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



z-END, 
Цитата(z-END @  20.4.2006,  11:32 Найти цитируемый пост)
получен с другого сайта
Так получать тогда его средствами php и парсить.  
PM MAIL   Вверх
korob2001
Дата 20.4.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 1
Всего: 61



Цитата

Именно так... например HTML-код может быть получен с другого сайта, который надо перекрасить...

Ну в этом случае да, но этот способ получения информации, так не надёжен. ;((( Парсить чужой HTML, это такое гиблое дело, хотя конечно это может быть и не HTML. 


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Illuminaty
Дата 20.4.2006, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 6
Всего: 56



ИМХО. Тему надо перенести в JavaScript.
А метод такой: програмно пробегаешь все ноды в документе. Смотришь, чему равно у нода свойство style.color. Если "red" или #ff0000, то меняешь его на то, что нужно.
Удачи! 
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.