Вы не зашли.
#11.
TLENS
Off
(14)
Moderator
2011.04.25 15:03
tipsunЯ же говорю что надо доделать это я так побырику катнул. Да и функцию str_split_utf8 надо заменить на перекодировку
Сильно не бейте, я просто попробовал написать...
Такой вариант кокашко наверно?
Код:
<html> |
<body> |
<form action="?" method="post"> |
<div> |
<textarea name="text"></textarea><br/> |
Код:
span style="color: #0000BB"><?php$text = $_POST['text'];$encode = mb_detect_encoding($text, 'auto');$count = mb_strlen($text, $encode);$html = null;$bbtext = null;for($x = 0;$x < $count;$x++) { $char = mb_substr($text, $x, 1, $encode); if(' ' !== $char and "\n" !== $char and "\r" !== $char and "\r\n" !== $char) { $r = mt_rand(0,255); $g = mt_rand(0,255); $b = mt_rand(0,255); $html .= '<span style="color: RGB('.$r.', '.$g.', '.$b.');">'.$char.'</span>'; $bbtext .= '[color=#'.dechex($r).dechex($g).dechex($b).']'.$char.'[/color]'; } else { $html .= $char; $bbtext .= $char; } }?> |
Код:
<textarea name="colorfull"><?=$bbtext?></textarea><br/> |
<input type="submit" value="colorfull" /> |
</div> |
</form> |
<div>- - - -<br/><?=nl2br($html)?><br/>- - - -</div> |
</body> |
</html> |
Отредактировано tipsun (2011.04.25 16:04)
Код:
span style="color: #0000BB"><?phpclass Color{ private $_text; /** * __construct * * @param $text * @return void */ public function __construct ($text) { $this->_text = $text; } /** * getBbcode * * @return string */ public function getBbcode () { $out = ''; foreach (preg_split('//u', $this->_text) as $v) { if (preg_match ('/\S/', $v)) { $out .= '[color=#' . $this->_getColor() . ']' . $v . '[/color]'; } else { $out .= $v; } } return $out; } /** * getHtml * * @return string */ public function getHtml () { $out = ''; foreach (preg_split('//u', $this->_text) as $v) { if (preg_match ('/\S/', $v)) { $out .= '<span style="color: #' . $this->_getColor() . ';">' . $v . '</span>'; } else { $out .= $v; } } return $out; } /** * _getColor * * @return string */ private function _getColor () { return substr(str_shuffle(str_repeat('0123456789abcdef', 6)), 0, 6); }}header('Content-type: text/plain; charset=utf-8');$obj = new Color('тест 2');echo $obj->getBbcode() . "\n";echo $obj->getHtml() . "\n";?> |
Тут по ходу конкурс начался
- - - -
Блеать, у Gemorroj-я The Best code
Отредактировано tipsun (2011.04.25 16:04)
не, у меня тоже есть к чему придраться. как минимум дублирование кода в методах getBbcode и getHtml
Я про такое даже не знал. Надо посмотреть...
Код:
span style="color: #0000BB"><?phpstr_shuffle(str_repeat('0123456789abcdef', 6))?> |
Добавлено спустя 9 минут 11 секунд: Gemorroj,
Код:
span style="color: #0000BB"><?php/// ! - тут не должен быть? \S - это пробел ведь?if (preg_match ('/\S/', $v)) { $out .= '[color=#' . $this->_getColor() . ']' . $v . '[/color]'; } else { $out .= $v; }?> |
- - - -
Хмм, не пробел. Надо почитать
Отредактировано tipsun (2011.04.25 17:05)
#17.
TLENS
Off
(14)
Moderator
2011.04.25 16:04
tipsunЭто пустые символы такие как пробел табуляция и т.п.
Да, нашел вот.
\s - один пробел
\S - один не пробел
Отредактировано tipsun (2011.04.25 17:05)
#19.
TLENS
Off
(14)
Moderator
2011.04.25 17:05
Можно сделать еще радугу и т.п.Добавлено спустя 3 минуты 28 секунд: Можно сделать еще градиент
Отредактировано TLENS (2011.04.25 17:05)
Вау, круто!
Я уже такое не смогу написать.
- - - -
Хотя! Надо будет попробовать.
Отредактировано tipsun (2011.04.25 17:05)