Случайный градиент любого текста

3.58K
.
# Koenig (28.04.2015 / 08:02)
ДоХтор, да посмотри результат чтения файла, вроде там массив, вот его тупо запиши в переменную
В какую переменную, в статическую?
.
# Koenig (28.04.2015 / 12:22)
ДоХтор, массив или переменная в теле функции работает так же как и в обычном коде
Это понятно. Но идея в том, чтоб обращаться к текст-файлу только один раз(при первом вызове функции), а дальше уже работать без текст-файла(что-то типа кэша что-ли). Так вот я думал реализовать эту идею с помощью статической переменной, а потом с помощью константы - в обоих случаях ничего не вышло, думаю потому, что данные в скрипте хранятся до конца его выполнения, а потом удаляются. Ну не в сессию же сохранять сериализованную строку?
.
(\/)____o_O____(\/)

ДоХтор, в классах такое я делал, пример построения хлебные крошек в библиотеке, там рекурсивно выполняются запросы пока не достигнет корня, и сохраняет ид и имя папки

.
Folour
Think different


отрефакторил гг, файл не нужен

код (+/-)
<?php

/**
 * @author ДоХтор <drzoom@mail.ru>
 *
 * @param string $string
 * @return string
 */
function gradient($string){

    static $colors = [
        '492702', '5B2F0B', '734119', '856449', '988575', '8B947E',
        '7D8C67', '7E9C50', '72A725', '77BA13', '6AA80D', '4C7B06',
        '456F07', '365507', '2C4605', '223603', '1D2F03', '052E1C',
        '043A22', '0B5031', '085B36', '0E6E42', '0D8C53', '4DAC81',
        '5FB88F', '8BB4A1', '679681', '687F75', '51675D', '5D5F5E',
        '4E5D5C', '567776', '575262', '554A6D', '54427B', '5B39A2',
        '4F338B', '442684', '351777', '280B67', '220957', '15043A',
        '130434', '17021C', '220329', '2C0336', '360642', '3C044A',
        '490859', '530D65', '550B68', '6A157F', 'A122C1', 'DC1097',
        'FA0E8F', 'FA054F'
    ];

    $chars = preg_split('||u', $string, -1, PREG_SPLIT_NO_EMPTY);
    $return = '';
    foreach($chars as $char) {
        $return .= '<span style="color: #'.$colors[array_rand($colors)].';">'.$char.'</span>';
    }

    return $return;
}

echo gradient('some text');
echo gradient('another text');
.
# Koenig (28.04.2015 / 12:36)
ДоХтор, в классах такое я делал, пример построения хлебные крошек в библиотеке, там рекурсивно выполняются запросы пока не достигнет корня, и сохраняет ид и имя папки
Я кстати тоже вспомнил, что ты мне говорил про ООП, и смотрел в эту сторону, но видать ещё не досмотрел
.
# Folour (28.04.2015 / 12:37)

отрефакторил гг, файл не нужен
[php]
<?php

/**
* @author ДоХтор <drzoom@mail.ru>
*
* @param string $string
* @return string
*/
function gradient($string){

static $colo
Спасибо, гг

На самом деле так скрипт выглядел изначально, коды цветов лежали в массиве(вместо файла). Мне сейчас надо добиться сохранения кодов в текст-файле, но обращаться к этому файлу только один раз, при первом вызове скрипта.
.

Folour, О, статик колор - это уже интересно! Ушёл читать

.
(\/)____o_O____(\/)

есть велосипед, смысл такой, делаем аргумент передаваемый в функцию по ссылке, в функции глобалим переменную, по умолчанию переменная пустая, после первой итерации массив будет доступен функции, в функции сделать проверку на заполненость аргумента, если пусто, то тянем файл

.
# Koenig (28.04.2015 / 12:52)
есть велосипед, смысл такой, делаем аргумент передаваемый в функцию по ссылке, в функции глобалим переменную, по умолчанию переменная пустая, после первой итерации массив будет доступен функции, в фун
Да, именно это и нужно. Я попробую реализовать сам. Спасибо =)
.
(\/)____o_O____(\/)

ДоХтор, вообще не обязательно все это делать в теле функции, если только из личного интереса и практики, можно же массив получить до выполнения функции, и либо глобалить массив, либо передавать его аргументом

Всего: 82