Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Три системы мобильной аналитики глазами digital-компаний
Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
woonem

PO6OT

  • 35
    вклад
  • 168
    вопросов
  • 89
    ответов
  • 38%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Есть ли алгоритмы отрезания меню, подвала и прочей требухи со страницы для выделения содержимого?

    woonem
    PO6OT @woonem Автор вопроса
    5 минут яндексирования дали результат.
    3c2ecd0086f245d48469ec445b475498.pngПро удаление малозначимых частей страниц при индек...
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • Как скормить CSV PHPlot'у?

    woonem
    PO6OT @woonem Автор вопроса
    <?php
    include('./phplot.php');
    
    $csv=file_get_contents('http://liveinternet.ru/stat/woonem.tk/index.csv?id=8;id=6;period=month;graph=csv');
    
    $graph =& new PHPlot(320,240);
    $graph->SetTitle("Quantity");
    $graph->SetXTitle('X data');
    $graph->SetYTitle('Y data');
    
    $data = str_getcsv($csv, ';', "\n");
    
    $graph->SetDataValues($data);
    $graph->DrawGraph();
    
    ?>
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Как создать код генерирующий блок список ip адресов?

    woonem
    PO6OT @woonem
    <?php
    
    //ВАРИАНТ 1
    
     $start = microtime(true); 
    
     $i1=127; $i2=0; $i3=0; $i4=1; //здесь начало диапазона
     $a1=127; $a2=0; $a3=255; $a4=255; //здесь конец диапазона
     $o1=$i1; $o2=$i2; $o3=$i3; $o4=$i4;
    
     for( ; ; ){
    
      file_put_contents('./1.iplist', $o1.'.'.$o2.'.'.$o3.'.'.$o4."\n", FILE_APPEND); //здесь запись
    
      $o4++;
      if($i3<$a3 or $i2<$a2 or $i1<$a1){
       if($o4>255){
        $o3++;
        if($i2<$a2 or $i1<$a1){
         if($o3>255){
          $o2++;
          if($i1<$a1){
           if($o2>255){
            $o1++;
            if($o1>$a1){
             break;
            }
            $o2=0;
           }
          }elseif($o2>$a2){
           break;
          }
          $o3=0;
         }
        }elseif($o3>$a3){
         break;
        }
        $o4=0;
       }
      }elseif($o4>$a4){
       break;
      }
     }
    
     echo 'Вариант 1: '.(microtime(true) - $start).' сек. '.filesize('./1.iplist')." Байт\n";
    
    
    //ВАРИАНТ 2
    
     $start = microtime(true);
    
     for ($i=0; $i<=255; $i++) {
      for ($e=0; $e<=255; $e++) {
        file_put_contents('./2.iplist', '127.0.'.$i.'.'.$e."\n", FILE_APPEND); //здесь запись
      }
     }
    
     echo 'Вариант 2: '.(microtime(true) - $start).' сек. '.filesize('./2.iplist')." Байт\n";
    
    
    //ВАРИАНТ 3
    
     $start = microtime(true);
    
     $from=ip2long('127.0.0.1');
     $to=ip2long('127.0.255.255');
     while($from++<=$to)
      file_put_contents('./3.iplist', long2ip($from-1)."\n", FILE_APPEND); //здесь запись
    
     echo 'Вариант 3: '.(microtime(true) - $start).' сек. '.filesize('./3.iplist')." Байт\n";
    
    ?>
    Ответ написан более трёх лет назад
    3 комментария
    Нравится 3 комментария
  • Как проверить, попало ли отправленное письмо в спам?

    woonem
    PO6OT @woonem
    Даже если письмо в спаме, вы будете думать, что оно дошло. Нельзя это проверить.
    Можно только посмотреть ваш IP в спам-базах
    Ответ написан более трёх лет назад
    3 комментария
    Нравится 1 3 комментария
  • Программирование для детей - что и как делать?

    woonem
    PO6OT @woonem
    Я в 8 сам без брата начинал с php.
    На счет лентяйства не знаю что делать, сам лентяй. Это зависит от воспитания.

    Предложите ему wen.ru или lark.ru - там конструкторы.
    Если ему это нужно, он начнет изучать html, так как конструкторы там ему не понравятся.
    Потом он захочет просто выставить сайт и ждать денег, т.е. автоматизировать процесс. Для этого ему понадобится php. Но нельзя, чтоб он читал целую книгу по php, иначе он уйдет из этого.
    Дайте ему учебник страницы на 4 от каких-то школоло, но смотрите, чтоб там было всё понятно, а то я изучал php 2 недели безрезультатно, так как книги эти писали люди тупее того меня, который был 4 года назад.
    Попробуйте предложить ему сделать какой-нибудь проект который требует знания linux или http или rtmp или dns или js, но не всё сразу. Чтоб он постепенно изучил всё то, что я вам отвечал, на вопрос, что изучить, чтоб быть веб-разработчиком.
    Когда ему будет 14, пора изучать C, C++ и Java.

    А вообще у него должно быть желание. Просто дайте ему wen.ru и смотрите, что будет. Остальные шаги необязательны.
    И осторожно, не то вырастите Брина.
    Ответ написан более трёх лет назад
    5 комментариев
    Нравится 5 комментариев
  • Привет, у меня есть проект, где нужно обеспечить потоковое видео?

    woonem
    PO6OT @woonem
    Если вы привязаны к бесплатности (shared-хостинги):
    когда-то я пытался сделать аналог rtmp потоку на shared хостинге. Что не удивительно, если вы посмотрите мои вопросы. И идея была в том, чтоб с помощью php выдавать тот кусок видео, который соответствует текущему времени сервера, а потом JavaScript'ом (или лучше flash) склеивать его


    но это только теория, а код придется писать вам, так как я не знаю ни flash ни js и идею осуществить не смог
    Ответ написан более трёх лет назад
    8 комментариев
    Нравится 8 комментариев
  • Можно ли обойти защиту в Windows XP на блокировку URL по ключевым словам? к примеру mp3?

    woonem
    PO6OT @woonem
    Идёте домой, записываете на диск образ Windows XP Professional SP3, приходите обратно в офис (я так понял, только там бывают такие блокировки), вставляете в дисковод диск с образом, выключаете компьютер, включаете в режим BIOS, настраиваете загрузку с CD, перезагружаете компьютер и переустанавливайте винду.

    Главное не спалиться, когда BIOS будете включать и если на BIOS'е пароль, то ничего не получится.
    И смотрите не отформатируйте случайно жесткий диск.

    А если не переустанавливать, то прямо держа в руках компьютер, я может быть и смог бы защиту отключить, но дать совет не могу.

    Вот, нашел. Для разблокировки надо иметь полномочия администратора компьютера. Попробуйте подобрать пароль администратора для входа - www.hardtek.ru/sistem/winxp_password.shtml
    В качестве второго компьютера рекомендую Raspberry Pi - он размером с кредитную карту.
    И используйте SSD для ускорения - habrahabr.ru/post/107243

    Я понимаю, что для того, чтобы этот ответ был полезен, вы должны уже понимать, как это делать.
    И думаю, если вы зашли в это сообщество, вы что-то знаете.
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 1 комментарий
  • Существует ли какая нибудь библиотека для создания событий на сайте?

    woonem
    PO6OT @woonem
    Глупый вопрос. Надо делать её самому, по тому, что если и существует такая библиотека, то ядро её будет в 10 строк, а всё остальное (90%) - код для настройки под вас. Делайте сами. Изучение и настройка займут больше времени чем написание своего скрипта. Тем более внедрять придется как-то и я даже не догадываюсь как вообще можно сделать такую библиотеку.
    Само программирование - это изобретание велосипеда. Что бы вы не делали - оно уже есть.
    Так что не беспокойтесь.
    Берите и пишите сами. Вы задали вопрос, будто это займет у вас 6 лет и лучше, если бы это уже было. Нет. 2 часа - и всё готово.
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 комментарий
  • Стоит ли изучать Symfony?

    woonem
    PO6OT @woonem
    Если вы не знаете с чего начать, берите и пишите без фреймворка. Бесят люди, которые спрашивают "а что лучше", "а стоит ли", "а чем вы пользуетесь" и т.д. Это зависит от вас лично и вы сами должны принять решение, а список вариантов вам с рабостью приподнесет гугл (если вам нужны варианты).
    Моё мнение - перестаньте тратить время на поиски путей и изучение тонн ненужного материала. Работайте.

    Можно подумать, я написал это вместо прямого ответа на вопрос только по тому, что не разбираюсь во фреймворках. Да, не разбираюсь. Но это ничего не значит. Мне без них хорошо и миллионам без них хорошо и я не понимаю, что все в них находят. По мне, так ООП и фреймворки - вещи, придуманные для того, чтобы вы купили и прочитали тонны книг и поняли, что это вам не надо, но деваться некуда - раз выучил, придется использовать, не пропадать же знаниям.
    Ответ написан более трёх лет назад
    5 комментариев
    Нравится 5 комментариев
  • Как отправить пользователя с post данными на сайт https без формы?

    woonem
    PO6OT @woonem
    Можно перенаправить обычным header:
    header('Location: https://example.com/script.php?post='.urlencode(json_encode($_POST)));

    А в script.php написать:
    $_POST=json_decode($_GET[post]);
    Ответ написан более трёх лет назад
    3 комментария
    Нравится 3 комментария
  • Какой посоветуете GSM шлюз для приема sms?

    woonem
    PO6OT @woonem
    Сделайте связку модемов.
    На счет прошивки модемов я ноль. Ищите сами.
    Самодельная связка модемов по-любому дешевле чем готовый пул.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • +1 к защите пароля методом тройного хеширования. Бред?

    woonem
    PO6OT @woonem
    E меня была похожая идея, вы не один :)
    Вот что удалось найти в заметках.

    Персонажи:
    Алиса - Сервер.
    Боб - Клиент.
    Сэм - Злоумышленник.

    Принцип действия:
    1. Боб запрашивает у Алисы key и keyid.
    2. Алиса генерирует случайное число key и записывает в свою базу данных такие значения:
    "key"=key, "keyid"=keyid, "expires"=(текущая дата плюс 2 минуты).
    3. Алиса отправляет Бобу key и keyid (у Сэма появились key и keyid).
    4. Боб отправляет Алисе такие данные:
    "login"=login, "encripted_pass"=md5(key||pass||key), "keyid"=keyid (у Сэма появились login, encripted_pass).
    5. Алиса достает expires, соответствующий keyid из своей базы данных. Если expires меньше текущей даты, Алиса отправляет Бобу ошибку "Timed out". Иначе, выполняются следующие шаги.
    6. Алиса достает pass, соответствующий login и key, соответствующий keyid из своей базы данных. Вычисляет md5(key||pass||key) и сравнивает с encripted_pass. Если вычисления совпали, авторизация пройдена.
    7. Алиса, независимо от того, успешна ли авторизация, записывает в строку expires, соответствующую значению keyid, значение "false".

    У Сэма есть значения key, keyid, login, encrypted_pass.
    Он не может повторно использовать encrypted_pass, так как "expires"="false" в поле, соответствующем keyid в базе данных Алисы.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Как беcплатно разослать смс пользователям?

    woonem
    PO6OT @woonem
    Пишешь небольшой php скрипт, который будет выдавать список номеров и текст СМС по токену, пишешь на java (j2me) программу для телефона, которая будет запрашивать номера и текст СМС по токену и отправлять СМС.
    Покупаешь или находишь java телефон nokia (3110c, например), вставляешь в него симку с дешевым тарифом на СМС и безлимитный интернет (например, Супер МТС - 10 коп. на любой номер РФ, на счёт интернета не знаю), копируешь своё java приложение на телефон, в телефоне выбираешь это приложение, нажимаешь правую софт-клавишу, затем Доступ > Отправка СМС > Запраш. один раз; Доступ > Сеть > Запраш. один раз.
    Включаешь приложение, при запросе "Разрешить приложению доступ к сети", нажимаешь "Да", при запросе " Разрешить приложению отправлять СМС" нажимаешь "Да". Готово.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • Как написать цикл?

    woonem
    PO6OT @woonem
    $a=20; //входное число
    for($i=0; $i<=800; $i++){
    $a+=($a/100*30);
    $a=round($a);
    echo $a.'
    '; //запись в бд
    }

    а вообще где вы учились, что пишете $a=$a+... вместо $a+=... и $a=explode('.', $a); $a=$a[0]; вместо $a=round($a); ? Да к тому же не разбираетесь в циклах.
    Интересно, как же вы тогда знаете, как записывать в БД. Наверно учебник листали в поисках нужных функций. Не повторяйте моих ошибок. Тоже так делал - теперь говнокодер. Учебник надо читать от корки до корки, а не выборочно. Вам будет только лучше от этого.
    Ответ написан более трёх лет назад
    6 комментариев
    Нравится 6 комментариев
  • Чем можно собирать статичную верстку?

    woonem
    PO6OT @woonem
    php и функции include, array_walk и dirlist
    читайте и используйте
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Как подключить php код и вставить переменную в HTML?

    woonem
    PO6OT @woonem
    В файле .htaccess в папке с html (точка в начале - не опечатка) допишите в конец
    <IfModule mod_fcgid.c>
    AddHandler fcgid-script .html
    </IfModule>
    <IfModule mod_php5.c>
    AddHandler application/x-httpd-php .html
    </IfModule>

    а в файле html напишите в самом начале
    <?php include('./путь/к/файлу.php'); ?>

    и в месте, где нужно вывести переменную в html напишите
    <?=$переменная?>
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Магия. Почему в MySQL базе таблицы нет, а выборку по ней можно делать?

    woonem
    PO6OT @woonem
    а вы про cache слышали?
    Ответ написан более трёх лет назад
    3 комментария
    Нравится 3 комментария
  • Бекэнд - что надо, а что нет?

    woonem
    PO6OT @woonem
    Apache/lighttpd + htaccess / NGINX
    Протоколы: HTTP, HTTPS, Сокеты, RTMP
    Туннелирование, Прокси, Модель OSI
    HTTP-заголовки, в том числе Cookies
    PHP/RoR, HTML, CSS, JS
    long polling, AJAX, JSON - для JS
    IRC (семафоры, PCNTL, LOCK_EX, Mutex, Shared Memory) - для PHP
    Фреймворки: Yii2/Laravel/CodeIgniter/Symfony/Composer - PHP, Angular/React+Redux/Vue/Node - JS
    ООП, Паттерны проектирования (MVC/MVVM/Singleton...)
    SQL (MySQL + PHP, Поисковые технологии (индексирование, выборка)
    Пользоваться: Linux, JSBin, Git/SVN, SSH, VNC, RDP
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 24 2 комментария
  • Как не кэшировать картинки с определенным названием?

    woonem
    PO6OT @woonem
    После той записи напишите:
    <FilesMatch "avatar.jpg">
       Header set Cache-Control "max-age=0"
    </FilesMatch>

    А зачем вам это нужно?
    Если, чтоб аватар сразу после установки менялся, то просто каждый раз ему ставьте рандомное имя, а в БД записывайте это имя, потом доставайте скриптом и вставляйте внутри своего HTML. Если лень настраивать подключение к MySQL, можете использовать YNDb, только не храните в YNDb важную информацию ни в коем случае - стабильной версии нет.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Как яндекс понял, что мне следует проверить компьютер антивирусом?

    woonem
    PO6OT @woonem
    С вашего IP адреса было слишком много запросов яндексу и он подумал, что вы бот, либо у вас на компьютере работает программа-вирус, которая постоянно отправляет яндексу запросы. На самом деле, вероятнее всего, у вас серый IP-адрес и его используют много людей, то есть с одного IP-адреса отправляется много запросов, а яндекс думает, что это один человек/бот, но не несколько.
    Позвоните вашему провайдеру и уведомите его, а еще попросите у него белый IP-адрес.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
Оценили как «Нравится»
  • ← Предыдущие
  • 1
  • 2
  • 3
  • 4
  • 5
  • Следующие →
Самые активные сегодня
  • hello_my_name_is_dany
    • 20 ответов
    • 0 вопросов
  • Василий Банников
    • 15 ответов
    • 0 вопросов
  • hottabxp
    Сергей Карбивничий
    • 8 ответов
    • 0 вопросов
  • Sanes
    Sanes
    • 7 ответов
    • 0 вопросов
  • GRO24
    • 6 ответов
    • 1 вопрос
  • shebanits
    • 6 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации