php отправка http заголовков - PullRequest
       5

php отправка http заголовков

2 голосов
/ 19 октября 2011

Я использую функцию php file_get_contents, и один из параметров - это заголовки http.Я делаю их такими:

if (strpos($key, 'HTTP_') === 0) {
    $key = strtolower(strtr(substr($key, 5), '_', '-'));
    $this->headers .= $key . ': ' . $value . '\r\n';
}

, но есть проблема, я должен отправлять заголовки в двойных кавычках, как это:

"Connection: close\r\nContent-Length: $data_len\r\n"

Вот пример того, как я могу сделатьзапрос:

$opts = array(
        'http'  =>  array(
            'method'    => "GET",
            'header'    => $this->headers
        )
);

$this->data = file_get_contents('http://phd.yandex.net/detect', false, stream_context_create($opts));

но это не удается.Если я заменим $this->headers в массиве на пользовательскую строку заголовков http, все будет работать нормально.

как сделать так, чтобы все работало правильно?

1 Ответ

5 голосов
/ 19 октября 2011

\r\n должен быть в двойных кавычках , чтобы символы анализировались правильно.Все остальное можно добавлять в одинарные кавычки, нет проблем.С помощью обратной косой черты в строках, заключенных в одинарные кавычки, анализируется только несколько вещей, например \\, \' и \".

Ваши заголовки выглядят так:

Key: Value\r\nKey: value\r\n

Где \r\n отображается как фактическая строка, когда вы хотите, чтобы она выглядела следующим образом:

Key: Value
Key: Value

Где \r\n фактически создает новую строку в заголовках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...