Laravel поставляется с GuzzleHttp, так что вы можете использовать его для отправки запроса на любой URL. После этого вы можете проверить тип, полученный в ответе, используя getHeader ().
Пример:
//load the client
$client = new \GuzzleHttp\Client();
try {
//send request
$request = $client->request('GET', 'https://www.google.com.br/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png');
//Check content type received
if($request->getHeader('content-type')[0] == 'image/png'){
echo "It's a PNG image";
} else {
}
} catch(Exception $e) {
//handle it
}
Ответ: FREQ=MONTHLY; BYMONTHDAY=28,29,30; BYSETPOS =-1, который переводит для "возвращения на 30-м из каждого месяца; или в последний день месяца, если 30-е не существует".
Ну, рассмотрение самого RFC 2445, определенно кажется, что поведение Вы видите, корректно:
Если значения части правила BYxxx найдены, которые являются вне доступного объема (т.е., BYMONTHDAY=30 в феврале), они просто проигнорированы.
Единственное решение, о котором я могу думать, состоит в том, чтобы использовать несколько правил повторения, т.е. один в течение 30-го из каждого месяца и другого в течение прошлого дня в феврале.
Похоже, что Вы правы относительно RFC, пропускающего те даты. Если Ваш DTSTART
31 января, и Вы не указываете a BYMONTHDAY
в Вашем правиле повторения (или если BYMONTHDAY
находится на 31-м), затем это просто проигнорирует то правило в течение многих месяцев, где нет такого дня:
Если значения части правила BYxxx найдены, которые являются вне доступного объема (т.е., BYMONTHDAY=30 в феврале), они просто проигнорированы.
Однако необходимо смочь указать-1 для BYMONTHDAY
и имейте его, используют прошлый день месяца, независимо от того, что это, может оказаться.
Часть правила BYMONTHDAY указывает Символ запятой (десятичное число ASCII 44) разделенный список дней месяца. Допустимые значения равняются 1 - 31 или-31 к-1. Например,-10 представляет десятое прошлому дню месяца.