Задать вопрос
  • Что выбрать - получить настоящий опыт разработки или продолжать изучать то, что нравится?

    HighQuality
    @HighQuality
    ☁ Ниндзя девелопер
    И пайтон и руби всего лишь языки программирования. Инструменты, которые помогают решать конкретные задачи. Никогда не стоит отказываться от изучения новых для себя технологий, если есть хорошая возможность для этого. :)
    Ответ написан
    Комментировать
  • Записать полученные данные в массив?

    @game802
    Ответ написан
    Комментировать
  • Как реализовать анимацию при скроллинге?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    var el = $('.your-element'),
          pageHeight = document.documentElement.scrollHeight,
          viewportHeight = document.documentElement.clientHeight;
    
    $(window).on('scroll', function (e) {
        var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
        // станет полностью видимым только когда прокрутят до конца
        // если нужно наоборот, то просто инвертируем (1-результат того что есть)
        // если нужно только в пределах какой-то облости - у вас все дано, 
        // нужно только посчитать
        el.css('opacity', (scrollTop+viewportHeight) / pageHeight )
    })
    Ответ написан
    Комментировать
  • Динамичная адресная строка в веб-браузере при использовании фрэймов?

    trushka
    @trushka
    Нужно history api использовать для подмены адресной строки, а там уже не важно, фреймы будут использоваться или аякс..
    Ответ написан
    Комментировать
  • Что выведет следующий код php?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Выполняем программу:

    1. Видим echo, значит нужно распечатать её аргумент(-ы в нашем случае, т.к. их два, указаны через запятую. echo - это и функция и языковая коснтрукция, можно вызвать со скобками, можно без, через запятую просто передаём аргументы, сколько хотим)
    2. Начинаем смотреть, какие аргументы надо распечатать: 1 . print(2) и 3
    3. Первый аргумент составной, требует доп. вычислений. Начинаем его вычислять:
    4. Сначала конкатенируем строку "1" с РЕЗУЛЬТАТОМ ВЫПОЛНЕНИЯ ФУНКЦИИ print(2).
    5. Чтобы получить результат функции, её надо выоплнить. Выполняем print(2) -> печатается двойка. Вот откуда у нас первый символ "2".
    6. Результат выполнения функции print() всегда 1.
    Returns 1, always.

    7. Значит результатом конкатенации у нас будет "1" . "1" -> значит первый аргумент для печати = "11" Печатаем его, на экране у нас теперь 211.
    8. Печатаем второй аргумент "3". Получилось 2113.
    Ответ написан
    1 комментарий
  • Что выведет следующий код php?

    Akdmeh
    @Akdmeh
    PHP, Yii2, Music
    Сперва срабатывает функция print, которая выводит 2.
    Эта функция возвращает значение 1, если вывод был успешным. Вот именно значение 1 подставляется на ее место.
    И затем уже происходит echo строки 1.'1'.3.
    В итоге получаем 2113 - все логично и согласно документации, пусть это и довольно тонкий момент
    Ответ написан
    4 комментария
  • Что выведет следующий код php?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    2 - результат вызова print(2). Функция вызывается до echo, для того, чтобы вычислить, что, собственно, нужно вывести.
    1 - единица в echo.
    1 - возвращаемое из print() значение.
    3 - и так понятно.

    и запятая после print(2)
    Это фича echo.
    Ответ написан
    Комментировать
  • Как проверить диапазон значений от 1 - 100 с помощью регулярных выражений?

    amux
    @amux
    alp.ac
    Обычная проверка If/else будет правильней:
    if(value >= 1 && value <= 100){
      //Проверили
    }


    Но если очень хочется:
    /^([1-9]|[1-9][1-9]|[1][0][0])$/gm
    https://regex101.com/r/1h3xaZ/1/
    Ответ написан
    4 комментария
  • Как сделать тень к картинке на PHP?

    B_Roma
    @B_Roma Автор вопроса
    Ребятки всем спасибо за помощь! Ответ почти найден !С помощью ПыХИ можно сделать тенюшку!

    $im = new Imagick( ROOT."/photo-cropped2.jpg" );
    $im->setImageFormat("png");
    $im->thumbnailImage( 200, null );
    $shadow = $im->clone();
    $shadow->setImageBackgroundColor( new ImagickPixel( 'black' ) );
    $shadow->shadowImage( 80, 3, 5, 5 );
    $shadow->compositeImage( $im, Imagick::COMPOSITE_OVER, 0, 0 );
    header( "Content-Type: image/png" );
    echo $shadow;


    Как сделаю полностью рабочий скрипт выложу =)может кому поможет =)))
    define('ROOT',dirname(__FILE__));
    $outFile1 = ROOT."/photo-cropped1.png";
    $outFile2 = ROOT."/photo-cropped2.png";
    $outFile3 = ROOT."/photo-cropped3.png";
    $outFile4 = ROOT."/photo-cropped4.png";
    $outFile5 = ROOT."/photo-cropped5.png";
    
    
    
    function createImage($outFile,$w,$h,$x,$y){
        $inFile = ROOT."/thumb_l_28550.png";
        $image = new Imagick($inFile);
        $image->cropImage($w, $h, $x, $y);
        $image->writeImage($outFile);
        $im = new Imagick( $outFile );
        $im->setImageFormat("png");
        $im->thumbnailImage( 140, null );
        $shadow = $im->clone();
        $shadow->setImageBackgroundColor( new ImagickPixel( 'black' ));
        $shadow->shadowImage( 50, 7, 3, 3 );
        $shadow->compositeImage( $im, Imagick::COMPOSITE_OVER, 0, 0 );
        $shadow->writeImage($outFile);
        return $shadow;
    }
    
    createImage($outFile1,150, 170, 20, 190);
    createImage($outFile2,150, 300, 178, 127);
    createImage($outFile3,150, 600, 336, 23);
    createImage($outFile4,150, 300, 495, 127);
    createImage($outFile5,150, 170, 653, 190);
    
    $src1=new Imagick(ROOT.'/white.png');
    $src2=new Imagick($outFile1);
    $src3=new Imagick($outFile2);
    $src4=new Imagick($outFile3);
    $src5=new Imagick($outFile4);
    $src6=new Imagick($outFile5);
    
    $src1->compositeImage($src2,Imagick::COMPOSITE_OVER, 20,190);
    $src1->compositeImage($src3,Imagick::COMPOSITE_OVER, 178, 127);
    $src1->compositeImage($src4,Imagick::COMPOSITE_OVER, 336, 23);
    $src1->compositeImage($src5,Imagick::COMPOSITE_OVER, 495, 127);
    $src1->compositeImage($src6,Imagick::COMPOSITE_OVER, 653, 190);
    $src1->writeImage(ROOT.'/result.png');

    Собственно вот и код !Прошу сильно не бить! Буду рад конструктивной критики =)
    вот такой получился результат

    aa485e302a80431198b8ad4b395d200f.png
    Ответ написан
    Комментировать
  • Как изгнать дьявола из вебсервера?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Почитать tcpdump, traceroute и значения MTU :)
    Ответ написан
    1 комментарий
  • Как взять из многомерного массива значение, имея ключи этого значения в другом массиве или строке?

    /**
     * Retrieves an element within multidimensional array stored on any level by it's keys.
     * @param array $data A multidimensional array with data
     * @param array $keys A list of keys to element stored in $data
     * @return null|mixed Returns null if elements is not found. Element's value otherwise.
     */
    function getElement(array $data, array $keys)
    {
        /** перебираем ключи */
        foreach($keys as $key) {
            /** 
             * Если текущий элемент - массив, и в нём есть ключ, то текущий массив перезаписываем на новый.
             * А если ключа такого нет или это не массив, то возвращаем null.
             */
            if (is_array($data) && array_key_exists($key, $data)) {
                $data = $data[$key];
            } else {
                return null;
            }
        }
        
        return $data;
    }

    Использовать как-то так:
    $data = [
      'key1' => [
        'key2' => [
          'key3' => [
            'value' => 123
          ]
        ]
      ]
    ];
    
    echo getElement($data, ['key1', 'key2', 'key3', 'value']); // => 123


    Можно пойти дальше и упростить себе вызов этой функции буквальной парой строк:
    Добавляем обработку ключа как строки:
    /**
     * Retrieves an element within multidimensional array stored on any level by it's keys.
     * @param array $data A multidimensional array with data
     * @param string|array $keys A list of keys to element stored in $data as an array or a string with joined keys with a dot (.)
     * @return null|mixed Returns null if elements is not found. Element's value otherwise.
     */
    function getElement(array $data, $keys)
    {
        if (is_string($keys)) $keys = explode('.', $keys);
        /** перебираем ключи */
        foreach($keys as $key) {
            /** 
             * Если текущий элемент - массив, и в нём есть ключ, то текущий массив перезаписываем на новый.
             * А если ключа такого нет или это не массив, то возвращаем null.
             */
            if (is_array($data) && array_key_exists($key, $data)) {
                $data = $data[$key];
            } else {
                return null;
            }
        }
        
        return $data;
    }

    И уже можно делать так:
    echo getElement($data, 'key1.key2.key3.value'); // => 123

    Ответ написан
    Комментировать
  • Смета на разработку сайта и мобильного приложения?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    АПИ для интеграции с мобильным приложением - 125 000 р.

    Подготовка api для приложения (на стороне веб‐версии сервиса) - от 150 000 р.
    Я отстал от жизни или что-то не понимаю?...
    Уточните стоимость ТЗ у других студий (2-3) и сравните потом.
    Ответ написан
    4 комментария
  • Смета на разработку сайта и мобильного приложения?

    sim3x
    @sim3x
    По линку не ходил

    С точки зрения заказчика, который не понимает в разработке, в тз вообще не должно быть тех деталей

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

    ПС: делать на битриксе = делать дважды, сначала на битриксе, а потом на нормальном фреймворке

    Заказывать сразу и сайт и мобильное приложение не надо.
    Вам или нужно мобильное приложение и лендинг для его раскрутки, или нужен адаптивный сайт и не нужен апп

    На размер студии - плевать. Даже если студия закончила 100 таких проектов как ваш, никто не даст гарантии, что на ваш проетк непоставят трейни просто потому, что остальные заняты.
    Ценник никто не поменяет
    Ответ написан
    Комментировать
  • Почему возникает ошибка в синтаксисе?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    $a=4;
    $b=10;
    $z= $a*$b;
    
    if ($a && $b > -1) { 
        echo $a-$b;
    }
    elseif ($a && $b < 0) {
        echo $a * $b;
    }    
    elseif ($z < -1) {
        echo $a+$b;
    }

    20170726-054354.png
    Ответ написан
    Комментировать
  • Как сравнить значение двух массивов?

    larisamoroz
    @larisamoroz
    Курю маны, втыкаю в код, ваяю, починяю.
    var first = [666,777,888,999];
    var second = [111,222,666,999];
    
    second = second.filter( function (el) { return first.indexOf(el)==-1; });
    Ответ написан
    4 комментария
  • Хочу получить рандомные числа. Что тут не так?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    var item = array[Math.round(Math.random()*(array.length-1))];
    Ответ написан
    3 комментария
  • Стоит и какие наработки выкладывать на github для будущего портфолио?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Стоит выкладывать свои классы (PHP) и библиотеки (JS).
    2. Стоит выкладывать нетривиальный и востребованный функционал.
    3. Целый проект чего-либо - лучше не выкладывать: мало кто поверит, что Вы делали его в одиночку и это достаточно трудоёмкая задача.
    4. Стоит в коде показать ваши знания и умения по владению структурой кода, алгоритмами, работой с текстом или бинарными данными, рекурсией и т.д.
    5. Лучше всего - взять отсутствующую реализацию востребованного алгоритма с википедии на том языке, на котором планируете показать свои навыки и реализовать (предварительно поискав на гитхабе и в гугл, и убедившись в отсутствии его реализации или недостаточном качестве).
    6. Можете ДАЖЕ ОДНУ функцию сделать, но чтобы она была востребована и делала свою работу лучше (качественнее и быстрее) существующих аналогов и привести таблицу сравнения по скорости исполнения вашего и других аналогичных решений.
    7. Задача портфолио на гите - не только показать качество кода и знания языка программирования (и различных подходов), но и способность мыслить не стандартно с максимально возможным результатом на выходе.
    Ответ написан
    2 комментария
  • Как закрыть модальное окно при клике за его пределами?

    larisamoroz
    @larisamoroz
    Курю маны, втыкаю в код, ваяю, починяю.
    $(".modal-container").on('click', function (e) {
        if (e.target == this) $(".modal").fadeOut('fast');
    })
    Ответ написан
    Комментировать