使用 curl 获取 http 响应标头


Grab http response header with curl

我使用curl --interface ip_goes here -I -L https://www.youtube.com/来获取http标头,但我想将HTTP/1.1 200 OK存储在变量中。我可以用preg_match做到这一点,但我想知道是否有更有效的解决方案

HTTP/1.1 200 OK
Date: Fri, 09 Jan 2015 05:49:12 GMT
Server: gwiseguy/2.0
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
X-Frame-Options: SAMEORIGIN
Expires: Tue, 27 Apr 1971 19:44:06 EST
P3P: CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info."
X-XSS-Protection: 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube
X-Content-Type-Options: nosniff
Alternate-Protocol: 443:quic,p=0.02
Transfer-Encoding: chunked
Set-Cookie: YSC=zCtzROldgfs; path=/; domain=.youtube.com; HttpOnly
Set-Cookie: VISITOR_INFO1_LIVE=Oz-yH5fLujM; expires=Wed, 09-Sep-2015 17:42:11 GMT; path=/; domain=.youtube.com

使用此命令

curl --interface ip_goes_here -s -I -L https://www.youtube.com/| head -1

注意附加 -s 表示静默

试试这个:

$str="HTTP/1.1 200 OK
Date: Fri, 09 Jan 2015 05:49:12 GMT
Server: gwiseguy/2.0
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
X-Frame-Options: SAMEORIGIN 
more string....";
    $a=explode("'n",$str);
    var_dump($a[0]);

输出: string 'HTTP/1.1 200 OK'