Гороскоп для всех знаков задиака на PHP

8:35 10.07.2017
Набросал класс horoscope, выводит предсказание на вчерашний день, на сегодняшний, на завтра, на неделю, на месяц и на год в целом. Конечно недочеты имеются в классе (писал на скорую руку), но думаю, если что, можно поправить, как угодно. Сам код класса (возможно длинноват):
class horoscope
{
    public function definition($d, $m)
    {
        $date = $m . '-' . $d;
        if ($date >= '01-21' && $date <= '02-18')
        {
            $sign = 'aquarius'; # Водолей
        }
        else if ($date >= '02-19' && $date <= '03-19')
        {
            $sign = 'pisces'; # Рыбы
        }
        else if ($date >= '03-20' && $date <= '04-19')
        {
            $sign = 'aries'; # Овен
        }
        else if ($date >= '04-20' && $date <= '05-20')
        {
            $sign = 'taurus'; # Телец
        }
        else if ($date >= '05-21' && $date <= '06-20')
        {
            $sign = 'gemini'; # Близнецы
        }
        else if ($date >= '06-21' && $date <= '07-22')
        {
            $sign = 'cancer'; # Рак
        }
        else if ($date >= '07-23' && $date <= '08-22')
        {
            $sign = 'leo'; # Лев
        }
        else if ($date >= '08-23' && $date <= '09-22')
        {
            $sign = 'virgo'; # Дева
        }
        else if ($date >= '09-23' && $date <= '10-22')
        {
            $sign = 'libra'; # Весы
        }
        else if ($date >= '10-23' && $date <= '11-21')
        {
            $sign = 'scorpio'; # Скорпион
        }
        else if ($date >= '11-22' && $date <= '12-21')
        {
            $sign = 'sagittarius'; # Стрелец
        }
        else
        {
            $sign = 'capricorn'; # Козерог
        }

        return $this->parse($sign);
    }

    public function parse($sign)
    {
        $urls = $this->urls($sign);

        $html = array();
        foreach ($urls as $url)
        {
            $html[] = file_get_contents($url);
        }

        return $this->treatment($html);
    }

    private function treatment($htmls)
    {
        $prediction = array();
        foreach ($htmls as $html)
        {
            preg_match('|<div class="article__item article__item_alignment_left article__item_html">(.*?)</div>|s', $html, $clarification);
            $prediction[] = $clarification[1];
        }

        return $prediction;
    }

    private function urls($sign)
    {
        return array(
            'https://horo.mail.ru/prediction/' . $sign . '/yesterday/',   # Вчера
            'https://horo.mail.ru/prediction/' . $sign . '/today/',       # Сегодня
            'https://horo.mail.ru/prediction/' . $sign . '/tomorrow/',    # Завтра
            'https://horo.mail.ru/prediction/' . $sign . '/week/',        # Неделя
            'https://horo.mail.ru/prediction/' . $sign . '/month/',       # Месяц
            'https://horo.mail.ru/prediction/' . $sign . '/year/'         # Год
        );
    }
}

Работать с классом можно так: Создаем объект:
$horoscope = new horoscope();

Теперь если надо вывести предсказания по дню и месяцу рождения, делаем так:
$predictions = $horoscope->definition('11', '11');

А если по названию знака, то так:
$predictions = $horoscope->parse('scorpio');

Полученная переменная $predictions - это массив с предсказаниями для разных времен (вчера | сегодня | неделя и так далее), выводим, например, в цикле:
foreach ($predictions as $prediction)
{
    echo $prediction;
    echo '<br />*** *** *** *** ***<br />';
} 

Сценарий выдаст на экран сразу все предсказания. А если надо только одно, например, на сегодня, то можно так:
echo $predictions[1];