PHP curl для отображения вывода для URL типа «HTTP / 1.1 200 OK» - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь получить код ответа / статуса, включая заголовок для нескольких URL.Моя первая попытка была успешной при получении кода состояния, то есть 200 или 301 или 302. Но я хочу, чтобы вывод был как HTTP/1.1 200 OK или HTTP/1.1 302 Found и т. Д.

Ниже приведен мой код, в котором я получаю толькокод ответа, т. е. 200 или 301.

<?php
$line = "https://www.pnc.com";
        $ch = curl_init($line);
        curl_setopt($ch, CURLOPT_URL, $line);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_HEADER,true);
        curl_setopt($ch, CURLOPT_NOBODY, true);
        curl_setopt($ch, CURLOPT_TIMEOUT,10);
        $out = curl_exec($ch);
        $ret = true;
        if ($out !== false) {
                $statuscode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
                echo "Response Code:" .$statuscode. "\r";
        }
        curl_close($ch);
?>

Фактический выход

Response Code:HTTP/1.1 200 OK
ETag: "846caf551746b12e876c0bad5a50830d:1475788950"
Last-Modified: Thu, 06 Oct 2016 21:22:30 GMT
Accept-Ranges: bytes
Content-Length: 17609
Content-Type: text/html
Expires: Fri, 21 Sep 2018 15:35:01 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Fri, 21 Sep 2018 15:35:01 GMT
Connection: keep-alive

Ожидаемый результат

HTTP/1.1 200 OK.

Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 21 сентября 2018

Это можно сделать, используя strtok

Пример:

$statuscode = strtok( $statuscode, "\n" );

-или-

Используя взорвать isдовольно стандартный:

$statuscode = explode( "\n", $statuscode )[0];

Определенно есть и другие методы

Однако, возможно, самый простой способ - использовать сам cURL:

$response = curl_getinfo( $ch, CURLINFO_HTTP_CODE );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...