#11 2011.04.25 15:27

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Сервисы

tipsun
Я же говорю что надо доделать это я так побырику катнул. Да и функцию str_split_utf8 надо заменить на перекодировку

Неактивен

#12 2011.04.25 15:37

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Сервисы

Сильно не бейте, я просто попробовал написать...
Такой вариант кокашко наверно?

Код:

1
2
3
4
5
<html>
<body>
<form action="?" method="post">
<div>
<textarea name="text"></textarea><br/>

Код:

1
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; } }?>

Код:

1
2
3
4
5
6
7
<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:03)

Неактивен

#13 2011.04.25 16:19

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Сервисы

Код:

1
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";?>

Неактивен

#14 2011.04.25 16:21

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Сервисы

Тут по ходу конкурс начался big_smile
- - - -
Блеать, у Gemorroj-я The Best code smile

Отредактировано tipsun (2011.04.25 16:24)

Неактивен

#15 2011.04.25 16:26

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Сервисы

не, у меня тоже есть к чему придраться. как минимум дублирование кода в методах getBbcode и getHtml

Неактивен

#16 2011.04.25 16:28

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Сервисы

Я про такое даже не знал. Надо посмотреть...

Код:

1
span style="color: #0000BB"><?phpstr_shuffle(str_repeat('0123456789abcdef', 6))?>

Добавлено спустя   9 минут  11 секунд:
Gemorroj,

Код:

1
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:00)

Неактивен

#17 2011.04.25 16:59

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Сервисы

tipsun
Это пустые символы такие как пробел табуляция и т.п.

Неактивен

#18 2011.04.25 17:03

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Сервисы

Да, нашел вот.
\s - один пробел
\S - один не пробел

Отредактировано tipsun (2011.04.25 17:32)

Неактивен

#19 2011.04.25 17:12

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Сервисы

Можно сделать еще радугу и т.п.
Добавлено спустя   3 минуты  28 секунд:
Можно сделать еще градиент

Отредактировано TLENS (2011.04.25 17:18)

Неактивен

#20 2011.04.25 17:17

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Сервисы

Вау, круто! smile Я уже такое не смогу написать.
- - - -
Хотя! Надо будет попробовать.

Отредактировано tipsun (2011.04.25 17:19)

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.015 s