• Как проверить наличие ADBLOCK?

    SilenceOfWinter
    @SilenceOfWinter
    та еще зажигалка...
    не знаю как определить наличие самого adblock или аналогичных расширений браузеров, но сам эффект блокировки определяется элементарно - в блок с рекламой помещаешь "якорь":<img src="//domain.com/api/adp?block=true">,
    для корректной работы domain.com/api/adp должен возвращать прозрачное изображение 1x1px.
    если нужна проверка на клиенте/в браузере, то вместо изображения размещаешь JS скрипт
    var noAdblock = true; и после полной загрузки страницы проверяешь наличие переменной noAdblock
    Ответ написан
    3 комментария
  • Как распознать изображение на opencv?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    - выровнять и обрезать область с экраном
    - выполнить операцию cv2.threshold подобрав параметры
    - уменьшить изображение до 96x64
    Получите матрицу где строки будут содержать искомое, если поменять 255 на 1

    Прототип:
    import cv2
    
    IMAGE = # <path>
    
    image = cv2.imread(IMAGE)
    image = image[0:720, 100:1000]
    
    grey = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    (thresh, grey) = cv2.threshold(grey, 70, 255, cv2.THRESH_BINARY)
    res = cv2.resize(grey,(96, 64), interpolation = cv2.INTER_CUBIC)
    
    for im in res:
        out = ''.join(['1' if x else '0' for x in im])
        print(out)


    606ad804f3e84809315649.png
    Ответ написан
    3 комментария
  • Как разложить число в PHP?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Можно без перебора всех вариантов стразу получать искомые IP-адреса - если идти не от чисел, а от суммы цифр каждого числа.
    В результате скрипт, в котором echo было заменено на ++$count, проработал менее 14 секунд и насчитал 112279695 адресов.
    $tbl = array_fill(0, 20, []);
    for ($i = 0; $i < 256; ++$i) { $tbl[intdiv($i, 100) + intdiv($i, 10) % 10 + $i % 10][] = $i; }
    for ($i = 0; $i <= 19; ++$i) {
        for ($j = 0; $j <= min(19, 28 - $i); ++$j) {
            for ($k = max(0, 28 - 19 - $i - $j); $k <= min(19, 28 - $i - $j); ++$k) {
                foreach($tbl[$i] as $v1) {
                    foreach($tbl[$j] as $v2) {
                        foreach($tbl[$k] as $v3) {
                            foreach($tbl[28 - $i - $j - $k] as $v4) {
                                echo $v1, '.', $v2, '.', $v3, '.', $v4, "\n";
                            }
                        }
                    }
                }
            }
        }
    }

    Сумма цифр числа в диапазоне 0..255 имеет диапазон значений от 0 (0) до 19 (199).
    $tbl - массив списков чисел в диапазоне 0..255, имеющих одинаковую сумму цифр.
    Ответ написан
    1 комментарий
  • Как разложить число в PHP?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Можно решить в лоб: перебором всех значений - медленно но верно:
    <?php
    function number_sum($num)
    {
        return array_sum(str_split($num));
    }
    
    $sum = 28;
    
    for ($b1 = 1; $b1 < 256; $b1++) {
        for ($b2 = 0; $b2 < 256; $b2++) {
            for ($b3 = 0; $b3 < 256; $b3++) {
                for ($b4 = 0; $b4 < 256; $b4++) {
                    if ((
                        number_sum($b1) +
                        number_sum($b2) +
                        number_sum($b3) +
                        number_sum($b4)
                    ) == $sum) {
                        echo "$b1.$b2.$b3.$b4" . PHP_EOL;
                    }
                }
            }
        }
    }


    Результат запуска PHP

    Наверно можно быстрее, но если честно, лень
    Ответ написан
    3 комментария
  • Как развернуть прокси на windows?

    @zlo1
    Ответ написан
    Комментировать