|
|
|
| Приветствую всех!
Дано… есть разукрашенное слово, например: SOFTTIME . Разукрашено таким способом: S$00fOFT$55cT$99cIME
После символа "$" идет значение цвета RGB ..
Есть две задачи…
1.. вырезать из слова все цвета
2.. заменить все цвета данные в формате $ccc на html код …
Спасибо | |
|
|
|
|
|
|
|
для: hopupu
(11.12.2009 в 22:40)
| | Решение задачи № 1
preg_replace('|(\$[0-9a-f]{3})*|i','','S$00fOFT$55cT$99cIME');
|
Для задачи №2 не ясно что за html код нужно вставить | |
|
|
|
|
|
|
|
для: big-trot
(11.12.2009 в 22:56)
| | заместо диапозона 0-9 можно использовать \d | |
|
|
|
|
|
|
|
для: big-trot
(11.12.2009 в 22:56)
| | СПАСИБО!
нужно получить вместо: S$00fOFT$55cT$99cIME
S<font color="#0000ff">OFT</font><font color="#5555cc">T</font><font color="#9999cc">IME</font> | |
|
|
|
|
|
|
|
для: hopupu
(11.12.2009 в 23:06)
| |
<?php
$s = 'S$00fOFT$55cT$99cIME';
if( preg_match('/\\$[a-f\\d]{3}/', $s) )
{
$s = preg_replace('/\\$([a-f\\d])([a-f\\d])([a-f\\d])/', '</font><font color="#\\1\\1\\2\\2\\3\\3">', $s);
$s = '<font>' . $s . '</font>';
}
echo $s;
?>
|
| |
|
|
|
|
|
|
|
для: hopupu
(11.12.2009 в 23:06)
| | Для именно такой строки предлагается следующий монстр
$str=preg_replace('|(?:\$([\da-f])([\da-f])([\da-f]))+|i','</font><font color="#\\1\\1\\2\\2\\3\\3">','S$0ffOFT$55cT$99cIME');
$str=preg_replace('|<\/font>|','',$str,1);
$str.='</font>';
|
Если вы хотите находить такие строки в тексте, то задача несколько усложняется.
Во-первых желательно знать формат контекста поиска (html страница, обычный тескт и т.д.),
т.к. универсального решения я подозреваю нет, или будет очень сложно | |
|
|
|
|
|
|
|
для: big-trot
(12.12.2009 в 00:02)
| | Поразительно совпадение | |
|
|
|
|
|
|
|
для: big-trot
(12.12.2009 в 00:06)
| | Ууф!
Спасибо! все работает!!!!! !
p.s. поиск в словах.. | |
|
|
|
|
|
|
|
для: hopupu
(12.12.2009 в 00:22)
| | Разрешите еще вопрос… Проблема в том, что иногда я получаю цвета в формате $xxx где вместо цифры "0" стоит буква "o" .. как это исправить?
Спасибо! | |
|
|
|
|
|
|
|
для: hopupu
(16.12.2009 в 23:42)
| | Очень интересно как она там оказалась. | |
|
|
|
|
|
|
|
для: Fractured#
(17.12.2009 в 00:00)
| | она может стоять на любом месте или на всех сразу…
эти данные я получаю не от своих пользователей, а с другого сайта в xml формате… так что мне остается только обрабатывать.. предотвратить это никак не получится.. | |
|
|
|
|
|
|
|
для: hopupu
(17.12.2009 в 00:10)
| | А если это не цвет вовсе? А если там ещё будет кириллические "А", "В, "С"? | |
|
|
|
|
|
|
|
для: Fractured#
(17.12.2009 в 00:18)
| | это именно цвет.. и там только или русское "o" или латинское… | |
|
|
|
|
|
|
|
для: hopupu
(17.12.2009 в 00:20)
| | Ты можешь составить чёткие правила, что на используемом тобой ресурсе, называется кодом цвета? Или эти буковки вбивают пользователи (на том ресурсе), правила которым не писаны? За этой проблемой могут последовать другие. Они могут пробел поставить, они могут вместо знака доллара написать знак евро. Что тогда? | |
|
|
|