1. Список говнокодов пользователя netdog

    Всего: 1

  2. PHP / Говнокод #2009

    +155.2

    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
    function search($source,$text)
    {
    
    $result = false;
    
    $searchfilms = "#<a class=\"all\" href=\"/level/1/film/(.*?)a>#si";
    $searchfilms2 = "#<font color=\"\#999999\">(.*?)</font>#si";
    
      while (preg_match_all ($searchfilms, $source, $matches))
      {
        preg_match_all($searchfilms2, $source, $matches2);
        foreach ($matches as $key => $temparray)
        foreach ($temparray as $key2 => $tempresult){
        $result[$key2] = $tempresult;
        $result[$key2] = preg_replace("#(.*?)/sr/1/\">(.*?)</#is", "<a href=\"?id=\\1\">\\2</a>", $result[$key2])."   ".$matches2[$key][$key2];
        }
     return $result;
      }
    }
    
    
    Парсер результатов с кинопоиска, отсюдова: http://bit-torrent.kiev.ua/arser_kinopoisk_ru-t3637/index.html
    Может я что-то не понимаю, но зачем так извращаться совсем не ясноне ясно, 3 вложенных  цикла О_о.   preg_match в while зачем совсем не ясно.
    
    Короче чтобы добавить сюда еще и год фильма, пришлось переписать... А хотелось AFAIK :)
    
    Короче AFAIK вышло вот так:
    
    
    function search($source, $text) {
    
    	$result = array();
    
    	$searchfilms = 	"#<a class=\"all\" href=\"/level/1/film/(.*?)/.*?>(.*?)<.*?a>.*?(\d{4}).*?#si";
    	$searchfilms2 = "#<font color=\"\#999999\">(.*?)</font>(.*?)#si";
    
    	preg_match_all ($searchfilms, $source, $matches);
    	preg_match_all($searchfilms2, $source, $matches2);
    
    	foreach ($matches[1] as $key => $temparray) {
    		$id = $matches[1][$key];
    		$name = $matches[2][$key];
    		$name_eng = $matches2[1][$key];
    		$year = $matches[3][$key];
    		
    		$result[] =  "<a href=\"?id=$id\">$name..$name_eng...($year)</a>";	
    	}
    
    	return $result;
    }
    
    p.s. ИМХО читабельнее в разы

    netdog, 21 Октября 2009

    Комментарии (10)