Я использую CURL для выполнения HTTP-запросов.Я получаю обратно что-то вроде этого:
HTTP/1.1 200 OK
Date: Thu, 07 Apr 2011 15:52:33 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Мой вопрос: как я могу надежно получить любое из четырех именованных значений полей?
Прямо сейчас я делаю это:
$name = 'Expires';
preg_match('/^'.$name.': ([^\r\n]*)[\r\n]*$/m', $headers, $matches);
Кажется, работает.Мне просто любопытно, что мое регулярное выражение здесь будет работать для каждого правильно сформированного заголовка, который я когда-либо получал от сервера, или если есть отклонения, где он сломается.Кажется, я не могу найти конкретные ограничения на допустимые символы, символы новой строки или возврат каретки, поэтому я не знаю, будут ли все значения соответствовать формату:
Имя поля, после которого следует двоеточие, после пробела, а затем - несимволы новой строки, за которыми следуют символы новой строки.