За последние 24 часа нас посетили 20066 программистов и 1082 робота. Сейчас ищут 699 программистов ...

Смотрите пожалуйста если не трудно

Тема в разделе "Сделайте за меня", создана пользователем sherxan-g, 5 май 2020.

Метки:
  1. sherxan-g

    sherxan-g Активный пользователь

    С нами с:
    11 июн 2018
    Сообщения:
    35
    Симпатии:
    0
    Смотрите пожалуйста если не трудно , скрипт показывающий яндекс икс все нормально работает только если нет результата показывает пустой место а мне надо 0 , извините что отвлекаю от работы.
    PHP:
    1. class YandexIks
    2. {
    3.     private static $reference = [
    4.         '..xxxxxx....xxxxxxxxx.xxxxxxxxxxxxx.......xxxx.......xxxxx.....xxxxxxxxxxxxxx.xxxxxxxx..',
    5.         '..xx........xxx.......xxx........xxxxxxxxxxxxxxxxxxxxxx',
    6.         '.........xxxx......xxxxx......xxxxx.....xxxxxx...xxxx.xxxx.xxxx..xxxxxxxx...x.xxxx.....x',
    7.         'x........xxxx.......xxxx...x...xxxx...x...xxxx..xxx..xxxxxxxxxxxxxxxxxxxxxxxx......xxxx.',
    8.         '......xx.......xxxx......xxxxx....xxxx..x...xxxx...x...xxxxxxxxxxxxxxxxxxxxxx.......x...',
    9.         '..........xxxxxxx...xxxxxxxx...xxx...xx...xxx...xx...xxx...xxxxxxxx...xxxxxxx.....xxxx..',
    10.         '....xxxxx....xxxxxxxxx.xxxxxx.xxxxxxxxx...xxxxx.xx...xxxx..xx...xxx...xxxxxxxx....xxxxx.',
    11.         'x..........x.........xx.......xxxx....xxxxxxx..xxxxxx..xxxxxxx....xxxxx......xxx........',
    12.         '......xxxx.xxxxxxxxxxxxxxxxxxxxxxxx..xxx..xxxx..xxx..xxxxxxxxx..xxxxxxxxxxxxx.xxxx.xxxx.',
    13.         '.xxxxx.....xxxxxxx...xxxx.xxx...xxx...xx..xxxx...xx.xxxxxx..xxxxx.xxxxxxxxx...xxxxxxx...',
    14.     ];
    15.  
    16.     /**
    17.     * Получение значения ИКС для указанного домена
    18.     *
    19.     * Данный метод не должен приводить к бану по IP при слишком частых запросов,
    20.     * не выводится капча.
    21.     */
    22.     public static function getValueFromImage($domain) {
    23.         $yaurl = 'https://www.yandex.ru/cycounter?' . $domain;
    24.         $img = @imagecreatefrompng($yaurl);
    25.      
    26.         return $img ? self::parseImg($img) : '-';
    27.     }
    28.  
    29.     private static function parseImg(&$src_img) {
    30.         // где могут размещаться данные по ИКС
    31.         $iks_x = 26;
    32.         $iks_y = 10;
    33.         $iks_w = 56;
    34.         $iks_h = 11;
    35.        
    36.         // сюда вырезается нужная часть изображения
    37.         $dst_img = imagecreatetruecolor($iks_w, $iks_h);
    38.      
    39.         // нужна часть изображения, на которой могут быть цифры
    40.         imagecopy($dst_img, $src_img, 0, 0, $iks_x, $iks_y, $iks_w, $iks_h);
    41.      
    42.         $arr = [];
    43.         for ($i = 0; $i < $iks_w; ++$i) {
    44.             $arr[$i] = '';
    45.             for ($j = 0; $j < $iks_h; ++$j) {
    46.                 $arr[$i] .= 8882055 == imagecolorat($dst_img, $i, $j) ? '.' : 'x';
    47.             }
    48.         }
    49.      
    50.         // подчистить пустые ряды
    51.         for ($i = 0; $i < $iks_w; ++$i) {
    52.             if ('...........' == $arr[$i])  unset($arr[$i]);
    53.         }
    54.  
    55.        
    56.         $iks = '';
    57.         $current_symbol = '';
    58.         $current_len = 0;
    59.  
    60.         foreach ($arr as $v) {
    61.             $current_symbol .= $v;
    62.             $current_len += 11;
    63.          
    64.             if (88 == $current_len) { // все символы имеют ширину 8
    65.                 foreach (self::$reference as $num => $symb) {
    66.                     if (similar_text($symb, $current_symbol) > 80) {
    67.                         $iks .= $num;
    68.                         break;
    69.                     }
    70.                 }
    71.                 $current_symbol = '';
    72.                 $current_len = 0;
    73.             } elseif (55 == $current_len) { // кроме 1 — у него ширина 5
    74.                 if (similar_text(self::$reference[1], $current_symbol) > 50) {
    75.                     $iks .= 1;
    76.                     $current_symbol = '';
    77.                     $current_len = 0;
    78.                 }
    79.             }
    80.         }
    81.        
    82.         return $iks;
    83.     }
    84. }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    PHP:
    1. return ($iks) ? $iks : 0;
     
    sherxan-g нравится это.
  3. sherxan-g

    sherxan-g Активный пользователь

    С нами с:
    11 июн 2018
    Сообщения:
    35
    Симпатии:
    0
    спасибо уважаемый человек