1. PHP / Говнокод #27095

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    $snippet = preg_split('/'. $qs .'/i', $replace);
            $c = 1;
            foreach( $snippet as $snip ) {
              $length  = strlen( $snip ) * .3;
              $xlength = strlen( explode( $qs, $snip )[0] ); 
              if( $c % 2 !== 0 ) {
                $highlight_1 = substr( $snip, $xlength * .3, $xlength );
              }
              else {
                $highlight_2 = substr( $snip, 0, $length );
              }
              $c++;
            }
            $output .= '<dfn class="revolver__search-snippet">... '. preg_replace("#[^а-яА-ЯA-Za-z:;._,? -]+#u", '', $highlight_1) . '<mark>'. $qs .'</mark>'. preg_replace("#[^а-яА-ЯA-Za-z:.;_,? -]+#u", '', $highlight_2) .' ...</dfn></li>';

    Pick — самая маленькая поисковая система на PHP и MySQL
    Здесь пришлось повозиться. Простой подход совсем не подразумевал, что PHP начнет обрабатывать UTF-8 корректно, но я смог добиться работы с русским и английским языками.

    https://habr.com/post/526652

    Запостил: gost, 08 Ноября 2020

    Комментарии (13) RSS

    • Блядь, в этой статье прекрасно ВСЁ! Каждый символ буквально сочится отборным говнищем!
      Особенно умиляет долбоёб, не умеющий в «mb_», но уже делающий, блядь, «поисковую систему». И да, «поиск» в его «поисковой системе» — это seq scan по регулярке.
      Ответить
    • Парсинг индексируемого сайта идеален:
      function parse(string $html, string $url): ?iterable {
      
          $host_links = [];
      
          // Perform title
          preg_match_all('#<title>(.+?)</title>#su', $html, $meta_title);
      
          // Perform body
          preg_match('/<body[^>]*>(.*?)<\/body>/is', $html, $meta_body);
      
          // Perform links only for host
          preg_match_all('/<a.*?href=["\'](.*?)["\'].*?>/i', $html, $meta_links);
      // ...
      Ответить
      • Здесь мы не используем классический LIKE MySQL запрос, а применяет RegExp поиска по базе данных.
        Поскольку двигатель DBX обладает функцией кэширования мы можем совершенно не волноваться за
        нагрузку. Повторные запросы выборки будут получать данные из статических файлов.
        Ответить
        • там типа кеш: стат страница естьф ункция от регулярки?
          Ответить
      • мартышке показали регулярку и LIKE в MySQL. Теперь они все этими двумя мощнейшими инструментами и делает
        Ответить
    • Болото ПХП рождает таких лохнесских чудовищ, что страшно становится.

      Автор плодовит
      https://habr.com/en/post/523976/
      void setTimeout(() => {
      
      					if( !RR.menuMove ) {
      
      						RR.styleApply('.dynamic-menu ul', ['left: 0px', 'transition: all 2.5s cubic-bezier(0.175, 0.885, 0.32, 1.275)']);
      						//RR.animate('.dynamic-menu ul', ['left:0px:1000:wobble']);
      
      					}
      
      				}, 2500);


      сука, чтоб ему всю жизнь такой код поддерживать
      Ответить
    • Кстати, у этого фулл-стек девелопера есть крутейший сайт
      https://revolvercmf.ru/

      В этом release ядро RevolveR CMF оснащено встроенной поисковой системой Pick. Теперь каждая инсталляция RevolveR CMF обладает собственной поисковой базой и позволяет добавлять в индекс ресурсы, которые нравятся администраторам и писателям.


      Больше всего мне нравится меню сверху сайта
      Ответить
      • форсишь?
        Ответить
        • да.

          Такой кадр всё таки не каждый день попадается
          Ответить
          • а гостевуха там есть? ну или "Связаться с менеджером по продажам ЦМС"?
            Ответить
            • пока не знаю

              я ввел кавычку в "поиск", и получил сообщение
              https://i.postimg.cc/kXZPhpTp/image.png

              всё как я люблю

              есть раздел "магазин"
              * Наполнение веб-сайта контентом: 3448.85 р.


              Кстати, он собирается выгнать из бизнеса гугл и яндекс

              Будущее Pick networks - это объединение индексов инсталляций для получения максимально качественной выдачи по ключевым фразам, а также возможность голосовать за результаты в поиске по системе 5 звезд. Таким образом, поисковая бюрократия сводится на нет, а ранжирование в результатах поисковой выдачи становится продуктом деятельности пользователя. Никаких мифических PageRank и Яндекс X. В выдачу будут попадать только избранные пользователями ресурсы, а процесс определения положения поискового сниппета становится независим от проплаченной рекламы или ссылочного надувательства.
              Ответить
    • всё таки он охуенный

      Он пишет (глубоко в коллбеке как можно видеть по отступам)
      for( i of RR.MenuMoveObserver ) {
      
      						RR.detachEvent(i[ 2 ]);
      
      					}
      
      					if( e.target.tagName === 'A' && !RR.touchFreeze ) {
      
      						//R.loadURI(target.href, target.title);
      
      						console.log(e.target.href);
      
      						RR.touchFreeze = true;
      
      						RR.menuMove = null;
      
      					}


      Читатель замечает: Это называется спагетти код!

      Full-R парирует:
      [quote]
      А че вы Laravel сразу не пиарите? Ненавижу шестерок инфраструктуры, в которой они даже не разработчики. Захотелось разбить вам лицо.
      [/quote]
      Ответить

    Добавить комментарий