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

    +154

    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
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    <?
    function clearComma($str)
    {
      $str = preg_replace("#(,|\.|-|\/|:|;|\"|'|\?|\(|\)|\\|*)#", '', $str);
      return $str;
    }
    function generate($bold_o, $bold_c)
    {
      $art = file_get_contents('article.txt');
      $voc_str_mass = file('voc.txt');
      $key = file('key.txt');
      foreach ($key as $word)
      {
        $keys[] = trim($word);
      }
      foreach ($voc_str_mass as $voc_str)
      {
        $voc[] = explode("\t", trim($voc_str));
      }
      $words_massive = explode(' ', clearComma($art));
      foreach ($words_massive as $word)
      {
        if (strlen($word) > 3)
        {
          foreach ($voc as $check)
          {
            if (in_array($word, $check) && $word != 'keyword')
            {
              $c = count($check);
              $art = str_replace($word, $check[rand(0, $c - 1)], $art);
            }
          }
        }
      }
      $art_mass = explode(' ', $art);
      foreach ($art_mass as $string)
      {
        $art_out .= str_replace('keyword', $bold_o . $keys[rand(0, count($keys) - 1)] . $bold_c, $string) . ' ';
      }
      return $art_out;
    }
    //echo(generate('<b>', '</b>'));
    //exit();
    $tpl_mass = file("tpl.tpl");
    foreach ($tpl_mass as $tpl_string)
    {
      $template .= str_replace('{GENERATE}', generate('<b>', '</b>'), $tpl_string);
    }
    //$date = date(d).'-'.date(m).'-'.date(Y).'_'.date(H).'-'.date(i).'-'.date(s);
    $handle = fopen($date . '_generated.html', "w");
    fwrite($handle, $template);
    fclose($handle);
    ?>

    ну тут тока матом если...

    Запостил: пгуые, 20 Августа 2009

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

    • сорри не расписал
      02-06 - проще и быстрее юзать str_replace с массивом ненужностей
      07-41 - убивает текст, составные слова и пр, на выходе отдает псевдосинонимизированный текст, полностью убитый
      45-48 - сопсна сам процесс принесения в жертву...
      Ответить
      • если это синонимизатор, то там трансгалактических скоростей не надо, а регекспы юзать куда приятнее, чем городить массивы. К тому же, здесь надо заменить кучу разного чего-то на пустоту - ты что будешь делать один массив с элементами под замену, а второй - с таким же количеством элементов - пустых строк, и это кормить стр_реплейсу? Вот это внатуре будет быдлокод :)

        > убивает текст, составные слова и пр, на выходе отдает псевдосинонимизирова нный текст, полностью убитый
        - это уже проблемы алгоритмизации. В целом код довольно чистый и читабельный, и решает поставленные задачи почти не через жопу.
        Хотя... Вот переменные $bold_o, $bold_c порадовали! :))
        Ответить
        • =) я рад =)
          Ответить
        • ps задачу он не решает, точнее решает и именно через зад =) с крупными текстами возникают таймауты по 15 минут, а при накоплении большого словаря(ну если тока не из базы) идет нагрузка на серв...
          Ответить
    • один массив с элементами под замену, а второй - с таким же количеством элементов - пустых строк - тут не понял, зачем массив пустых строк, я имел в виду что
      str_replace(array(ненужное через запитульку), '', $str);
      это отработает быстрее чем регексп...
      Ответить
    • Аааа, дорвейщики овладевают! Убейте меня, кто-нибудь!
      Ответить

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