• Как установить лимит на выполнение запроса в цикле PHP?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    $ctx = stream_context_create(array('http'=>
        array(
            'timeout' => 10,  // Seconds
        )
    ));
    
    echo file_get_contents('http://example.com/', false, $ctx);
    Ответ написан
    Комментировать
  • Как завершить выполнение PHP скрипта через 10 секунд?

    @bkosun
    По умолчанию используется тайм-аут, который установлен в php.ini
    https://www.php.net/manual/en/filesystem.configura...

    Можно установить нужное значение во время выполнения скрипта (глобально):

    ini_set('default_socket_timeout', 10);

    Или задать параметры для функции (локально):

    $options = stream_context_create([
        'http' =>
            [
                'timeout' => 10
            ]
    ]);
    
    $content = file_get_contents('http://example.com', false, $options);


    https://www.php.net/manual/en/context.http.php
    Ответ написан
    2 комментария
  • Как избавиться от многочисленных if/else?

    Adamos
    @Adamos
    class CalculationData;
    
    abstract class Calculation 
    {
      public function calculate(CalculationData data);
    }
    
    class CalculationQueue 
    {
      public function addCalculation(Calculation calculationVariant, int priority);
    
      public function calculate(CalculationData data) {     
         for (c in calculations) {
           if(res = c.calculate(data)) return res;
         }
      }
    }
    Ответ написан
    4 комментария
  • Какой вариант компонента объективно лучше?

    profesor08
    @profesor08
    Лично я в упор не вижу аккордеона. В примере тимлида он есть, в твоем нет. Что если у одного слайда одна разметка, а у другого другая?

    В примере тимлида есть компонент аккордеона и компонент для слайдов, слайды выводятся в цикле. Как это работает меня не волнует, моя задача лишь вывести разметку для слайдов. В итоге получится чистый и понятный код.

    Твой же пример предполагает изначальное изучение твоих компонентов, какие там слоты, какие параметры передаются, в каком эти параметры должны быть формате и тд, и тп, чем, лично я, заниматься не стал бы, выкинул бы эту хрень и нашел/написал удобную.

    Твой аккордеон должен отвечать только за функционал аккордеона, а не стилизацию всего и вся.
    Ответ написан
    7 комментариев
  • Как создать хэш из строки типа md5 с минимальным набором символов a-zA-Z (без цифр) и с минимальными коллизиями?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В выборе "Сложность вопроса" должен быть четвертый пункт

    - Сложный
    - Средний
    - Простой
    - Дурацкий
    Ответ написан
    1 комментарий
  • Как изучить php и 1с Битрикс?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Тема из серии: работаю уборщиком, у нас поликлиника. У нас постоянные проблемы с больными, по этому компания предложила проспонсировать мое обучение...
    Это потеря времени.
    Ответ написан
    5 комментариев
  • Как вывести переменную за foreach?

    @BATPYIIIKOB
    PHP, JS
    $s = 0;
    
    foreach ($tables as $value) {               
    	if ($value['id'] == $id) {
    		$s = 2;
    	}
    }
    echo $s;


    Да и $key в вашем случае не нужен вообще.
    Опять же вопрос некорректен, как вывести 2?
    echo 2;
    Может вам необходимо вывести признак и прервать цикл?
    Ответ выше перезапишет 2 в 1 при невыполнении условия.
    Ответ написан
    Комментировать
  • Как объединить несколько событий в JS?

    Fzero0
    @Fzero0
    Вечный студент
    Ответ написан
    Комментировать
  • Какие полезные ресурсы используете в работе?

    sfi0zy
    @sfi0zy Куратор тега Вёрстка
    Creative frontend developer
    Большая часть ресурсов - ситуативные (в основном это документации к конкретным библиотекам). Из более-менее часто используемого могу вспомнить:
    MDN, DevDocs и Schema.org, чтобы вспоминать забытое.
    Can I use, чтобы смотреть поддержку браузерами (+ doiuse).
    WAVE и regex101, чтобы проверять себя.
    В Browserhacks иногда полезно заглянуть.
    FontPair и Coolors - если нужно без дизайнера подобрать шрифты и цвета.
    Snazzy Maps, чтобы брать готовые цветовые схемы для карт.
    Cubic-bezier, чтобы наглядно делать кривые для простых анимаций.
    Google - если затупил.
    Noisli - для фонового шума.
    Cross Browser Testing, чтобы тестировать результат.
    Ответ написан
    3 комментария
  • Где подтянуть JS пхписту?

    @BATPYIIIKOB
    PHP, JS
    https://learn.javascript.ru - однозначно
    также лекции Борисова из Эксперта
    Ответ написан
    Комментировать
  • Как в Laravel в модели поменять формат даты?

    be_a_dancer
    @be_a_dancer
    Backend/Fullstack Developer
    Вопрос: зачем изменять дату вносимую в базу, если достаточно изменить ее представление во внешнем виде?

    Есть такой вариант - добавить в модель
    protected $casts = [
        'created_at' => 'datetime:d/m/Y', // Свой формат
        'updated_at' => 'datetime:d/m/Y',
    ];


    Ну и прочитайте вот эту главу документации
    Ответ написан
    4 комментария
  • Почему ПК не подключается к домену?

    @rionnagel
    ковырятель
    С сетью у вас трэш какой-то.
    На AD нету шлюза (как у вас там что-то маршрутизируется?), dhcp другой на win 7, разные подсети, на xp возможно вообще dhcp клиент отключен (либо ещё по какой-то причине не получает адрес). Возможно сами компы не вводятся в домен т.к. нет доступа до днс сервера.
    Я предполагаю, что вы начудили с настройкой сети виртуальных машин.
    Ответ написан
    Комментировать
  • В reg.ru украли домен с уникальными 10 миллионами посетителями, что делать?

    @ChiDa
    Лучший из худших
    Это же reg.ru самый убогий регистратор доменных имен. Упаси боже моих клиентов от этого регистратора ныне присно и во веки веков, аминь. Решать через них бесполезно. Решайте в правовом поле. Скажите регру, что будете подавать и на них в суд тоже, так как они не обеспечили безопасность ваших персональных данных и идите в суд. Пусть компенсируют вам финансовые потери. В суде обычно не разбираются что такое домены, если у вас будет хорошо подготовленная юристом база то получите еще и с них денег. Тут главное найти хорошего юриста. Возможно эти идиоты из рег ру не захотят проверок где они и как хранят данные своих пользователей и зашевелятся. В любом случае их надо наказать.
    Ответ написан
    14 комментариев
  • Как смоделировать вселенную?

    flapflapjack
    @flapflapjack
    на треть я прав
    Можете для начала вот это глянуть

    https://www.youtube.com/watch?v=PCx228KcOow

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

    Естественно все хотелки можете подстроить под себя, и потренироваться на его исходниках, меняя их.

    Вообще классное видео - я залип. До конца сидел смотрел на эти точки.
    Ответ написан
    4 комментария
  • В браузере Safari появляются ссылки в верстке, хотя их нет, как исправить?

    SmthTo
    @SmthTo Куратор тега Вёрстка
    Все перепёлки мира будут оплакивать мою смерть.
    Вот это в head:
    <meta name="format-detection" content="telephone=no">

    Вообще, этих мета-тегов больше:
    <meta name="format-detection" content="telephone=no">
    <meta name="format-detection" content="date=no">
    <meta name="format-detection" content="address=no">
    <meta name="format-detection" content="email=no">

    Информация:
    https://stackoverflow.com/questions/28027330/html-...
    Ответ написан
    1 комментарий
  • Вернуть клиенту деньги, за проделанную работу?

    @dimoff66
    Кратко о себе: Я есть
    Отдайте деньги и ждите. Не далее чем через 3 месяца клиент попросится обратно - берите двойную сумму.
    Ответ написан
    22 комментария
  • Система лайков без авторизации?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Через куки выставляете флаг, что он уже голосовал.
    2. На сервере - записывайте IP и блокируйте на 6 часов.
    3. На сервере каждые 24 часа отсеивайте (нормализуйте показатель) "накрутку": когда средняя периодичность оценки материала (например, 1 час) значительно превышает исследуемый интервал (т.е. голосовали часто; например, каждые 5 секунд на протяжении любого промежутка времени). Т.е., ищем явное (более 20-30% от среднего) среднестатистическое модульное отклонение среднего интервала оценки в сегменте (временном интервале) голосов с высокой частотой. Нормализуем к одному голосу и обновляем показатель.
    В целом - всё..

    PS: Есть более сложные варианты реализации с fingerprint2, evercookie и аналитикой просмотров и переходов (всё в совокупности).

    PS2:
    1. Геоблок - т.е. учитывать только определённые страны/регионы по IP-адресу (добавил Скворцов - Спасибо!)
    2. PROXY-чекер: проверка пакета на содержание PROXY-заголовков. Разумеется, только transparent-proxy, т.е. не анонимные, которые передают реальный IP.
    Ответ написан
    Комментировать
  • Как прокрутить индикаторы в слайдере bootstrap 4?

    https://getbootstrap.com/docs/4.1/components/carousel/
    Используя это slide.bs.carousel событие двигайте индикаторы на нужное расстояние, когда дошли до конца обнуляйте позицию индикаторов.
    Ответ написан
    2 комментария
  • Как правильно организовать структуру класса?

    Если что-то попроще, но при этом более-менее ООПшное, то можно как-то так:

    class Plugin {
    
    	constructor (rawUrl, rawName) {
    		this.url = new UrlParser(rawUrl);
    		this.name = new NameParser(rawName);
    	}
    
    	doSomething () {
    		// code
    	}
    }
    
    function userCode() {
        new Plugin("example.com", "FooBar").doSomething()
    }


    Если хотите побольше DI и всего такого, но при этом не потерять лёгкость использования, то можно так:

    class Plugin {
    
    	constructor (urlParser, nameParser) {
    		this.url = urlParser;
    		this.name = nameParser;
    	}
    	
    	doSomething () {
    		// code
    	}
    
    }
    
    Plugin.init = function (url, name) {
    	return new Plugin(
    		new UrlParser(url),
    		new NameParser(name)
    	);
    }
    
    function userCode() {
    	Plugin.init("example.com", "FooBar").doSomething()
    }


    UrlParser и NameParser - это классы, которые парсят всё необходимое, а потом внутри имеют свойства для обращения к ним.

    class UrlParser {
    
    	constructor (urlString) {
    		var result = this.matchUrlStrign(urlString)
    		
    		this.anchor = result[0];
    		this.path   = result[1];
    		// etc
    	}
    }


    Соответственно, в плагине используете как-то так:
    this.url.anchor
    Ответ написан
    3 комментария
  • Правильно ли я нарисовал схему базы данных интернет магазина?

    qonand
    @qonand
    Software Engineer
    Первое что бросается в глаза:
    Категории
    1. Категории у Вас только 1-го уровня, вложенных категорий не будет?
    2. Что такое "Тип продукта" в таблице "Категория" ? и на что он влияет?

    Товары
    1. Остатки товаров нигде не хранятся. Маловероятно что магазин торгует товаром который никогда не заканчивается...
    2. Хранить количество просмотров товара (которое постоянно должно обновляться) в таблице товаров - это очень плохая практика

    Корзина
    1. Что храниться в корзине? состав уже оформленного заказа? Тогда тут нужно учитывать количество заказаного товара и его стоимость во время заказа (она ведь со временем меняется) Состав формирующегося заказа? Тогда нужно учитывать как минимум количество добавленного товара. И то и другое?
    2. По сути дела в корзине у Вас сейчас храниться перечень товаров добавленных пользователем, тогда зачем в каждой строке хранить "IP клиента"? Насколько я понимаю IP Вы используете для привязки корзины к клиенту - в этом случае не нужно его храниться в каждой позиции корзины, лучше ввести отдельную таблицу для этих целей, да и привязка корзины по IP - плохой вариант

    Заказ
    1. Сумма заказа нигде не хранится, Вы ее что-ли планируете "на лету" рассчитывать?
    2. Не понятно какое назначения у таблицы "Журнал заказов"
    3. В заказе Вы храните данные о клиенте, но что будет если один и тот же клиент оформит несколько заказов? Вы получите дублирование данных, поэтому стоит информацию о клиентах вынести в отдельную таблицу

    P.S. Корректность структуры базы данных сложно оценить по одной схеме. В этом вопросе нужно исходить из задач, которые планируется решать
    Ответ написан
    Комментировать