#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
Сообщений: 2279
Карма: 19
Профиль

Re: Сервисы

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

Код:

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

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?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$x1$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
Сообщений: 6544
Карма: 108
Профиль Веб-сайт

Re: Сервисы

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
 
class 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)), 06);
        
    }
}
 
 
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
Сообщений: 2279
Карма: 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
Сообщений: 6544
Карма: 108
Профиль Веб-сайт

Re: Сервисы

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

Неактивен

#16 2011.04.25 16:28

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

Re: Сервисы

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

Код:

1
2
3
<?php
str_shuffle(str_repeat('0123456789abcdef'6))
?>

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

Код:

1
2
3
4
5
6
7
8
9
<?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
Сообщений: 2279
Карма: 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
Сообщений: 2279
Карма: 19
Профиль

Re: Сервисы

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

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

Неактивен

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

forum.wapinet.ru

PunBB Mod v0.6.2
0.013 s