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

    +160

    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
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    function sinonimizer($my_text)
    {
    $arr_ = file(dirname(__FILE__).'/new_words.txt');
    $arr = array();
    foreach ($arr_ as $str)
    {
        $str = trim($str);
    	$t1 = explode('|', $str);
    	$master = trim($t1[0]); //пихаем слово которое заменять
    	if (!isset($t1[1]))
    		continue;
    	$t2 = explode('|', $t1[1]); //Тут слово которым заменять
    	if (sizeof($t2) == 0)
    		continue;
    	//Дальше волшебные мунипуляции
    
    	foreach ($t2 as $t)
    		$arr[crc32(strtolower($master))][crc32(strtolower(trim($t)))] = array('word' =>
    		trim($t), 'rep' => 0);
    }
    $my_text=str_replace(array("\n","\t","\r")," ",$my_text);
    $text_arr = explode(' ', $my_text);
    $str_ = '';
    
    foreach ($text_arr as $item)
    {
    	$fl = false;
    	$t = str_replace('.', '', str_replace(',', '', str_replace('!', '',
    	str_replace('?', '', str_replace('"', '', str_replace('\'', '',
    	str_replace('<', '', str_replace('>', '', str_replace(':', '',
    	str_replace(';', '', $item))))))))));
    	if (isset($arr[crc32(strtolower($t))]))
    	{
    		foreach ($arr[crc32(strtolower($t))] as $k => $v)
        		if ($v['rep'] == 0)
    			{
    				$str_ .= str_ireplace($t, "$v[word]", $item) . ' ';
    				$$v['rep'] = 1;
    				$fl = true;
    				break;
    			}
    	}
    	if (!$fl) $str_ .= $item . ' ';
    }
    
    return $str_;
    }
    
    function sinonimizer_new($my_text)
    {
    $arr_ = file(dirname(__FILE__).'/new_words.txt');
    $arr = array();
    foreach ($arr_ as $str)
    {
        $str = trim($str);
    	$t1 = explode('|', $str);
    	$master = trim($t1[0]); //пихаем слово которое заменять
    	if (!isset($t1[1]))
    		continue;
    	$t2 = explode('|', $t1[1]); //Тут слово которым заменять
    	if (sizeof($t2) == 0)
    		continue;
    	//Дальше волшебные мунипуляции
    
    	foreach ($t2 as $t)
    		$arr[(strtolower($master))][(strtolower(trim($t)))] = array('word' =>
    		trim($t), 'rep' => 0);
    }
    $my_text=str_replace(array("\n","\t","\r")," ",$my_text);
    $text_arr = explode(' ', $my_text);
    
    $str_ = '';
    
    foreach ($text_arr as $item)
    {
    	$fl = false;
    	$t = str_replace('.', '', str_replace(',', '', str_replace('!', '',
    	str_replace('?', '', str_replace('"', '', str_replace('\'', '',
    	str_replace('<', '', str_replace('>', '', str_replace(':', '',
    	str_replace(';', '', $item))))))))));
    
    	if (isset($arr[(strtolower($t))]))
    	{
           
    		foreach ($arr[(strtolower($t))] as $k => $v)
        		if ($v['rep'] == 0)
    			{
    				$str_ .= str_ireplace($t, "$v[word]", $item) . ' ';
    				$$v['rep'] = 1;
    				$fl = true;
    				break;
    			}
    	}
    	if (!$fl) $str_ .= $item . ' ';
    
    
    }
    
    return $str_;

    волшебные мунипуляции

    Запостил: govnozmey, 12 Января 2011

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

    • не верю, что "мунипуляции" нельзя записать в строчек 5, хотя так и не понял, что они делают
      Ответить
    • Что это делает?
      Ответить
    • Это переводчик.
      Вообще этот скрипт тырит каталог товаров с одного сайта и заливает в бд интернет-магазина.
      Данный же кусок отвечает за перевод текста, файл new_words.txt выглядит примерно так ( словарь на 34 позиции ога ) =>

      Cotton|хлопок
      Chiffon|Шифон
      Material|Материал
      Ответить
    • Цепочка вызовов str_replace - это ХИТ, (т.е. shit), ЭсХит получается!
      Ответить
      • Можно конечно было и массивом, но так ведь забираешь получается у китайцев код!
        Ответить

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