Войти

Показать полную графическую версию : php деление значения строковой переменной


Guest
14-10-2004, 09:43
есть переменная $a="Василий";
нужно задать градиентный цвет.

цвет всему слову задать легко:

echo "<font color=red>".$a."</font>";

а как написать код ПОКРАСИВЕЕ так чтобы средние буквы были синим цветом?

т.е. надо <font color=red>Ва<font color=blue>сил</font>ий</font>

vadimiron
14-10-2004, 14:33
Смотрим в сторону функции substr
Например, на скорую руку можно такую функцию написать

function coloring ($str)
{
   $len_of_str=strlen($str);
   if ($len_of_str<=2)
   {
       return 0;
   }
   else
   {
           if ($len_of_str<=5)
           {
                echo "<font color=red>".substr($str,0,1)."</font>";
                echo "<font color=blue>".substr($str,1,$len_of_str-2)."</font>";
                echo "<font color=red>".substr($str,$len_of_str-1,1)."</font>";
           }
           else
           {
                echo "<font color=red>".substr($str,0,2)."</font>";
                echo "<font color=blue>".substr($str,2,$len_of_str-4)."</font>";
                echo "<font color=red>".substr($str,$len_of_str-2,2)."</font>";
           }
   }

}

Смысл работы: если строка $str состоит из 2 или менее знака, то ничего не делаем, если от трёх до пяти, то красим первую и последнюю букву красным, всё что в середине синим
Если больше 5 знаков, то красим первые две и последние две буквы красным, середину синим.
Это был просто пример использования функции

Guest
14-10-2004, 14:49
в таком случае проще писать

if (strlen($str)>2)
{
$f="<font red>$str[0]<font blue>$str[1]</font>$str[2]</font>";
}


и т.д.

а как сделать чтобы если величина больше 5, красить не две первых и последних буквы красным, а ровно 1/3 от величины в начале и в конце?

strlen($str)/3=?

vadimiron
14-10-2004, 16:39
Да, но например 7/3 выдаст значение 2,333333
Чтобы выдавать без значений после запятой, то можно воспользоваться, например, следущей функцией
bcdiv ();

Guest
14-10-2004, 17:12
класс, спасибо!
только вот всеравно както не красиво у нас получилось(




© OSzone.net 2001-2012