删除CURLOPT_HEADER返回数据

时间:2012-11-14 18:09:15

标签: php curl

我做了一些卷曲过程,有些网站必须设置CURLOPT_HEADER, true,这样才能获得html代码。

$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $url);
curl_setopt($ch2, CURLOPT_HEADER, true);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch2);
curl_close($ch2);
echo $html;

返回数据如:

HTTP/1.0 200 OK  Date: Wed, 14 Nov 2012 17:58:26 GMT  Expires: Wed, 14 Nov 2012 18:08:26 GMT  Cache-Control: max-age=600... 
<html...

那么如何在<html>之前删除一些数据(CURLOPT_HEADER返回数据:HTTP / 1.0 200 OK ...)?

2 个答案:

答案 0 :(得分:9)

CURLOPT_HEADER不会影响网站返回给您的内容。你可以删除它,如果你得到空的内容 - 那么其他的东西就错了。

CURLOPT_HEADER只是为了您的方便,所以您可以看到服务器回复您的脚本。一些Web API在标题中传递数据,这允许您访问它。

您可以像这样分割标题中的内容

list($header, $body) = explode("\r\n\r\n", $content, 2); // Notice the "2" limit!

答案 1 :(得分:2)

接受答案中的解决方案很简单,但如果重定向响应,它将无法按预期工作。

这是另一种适用于重定向的解决方案,但需要更多行:

static void test (btDynamicsWorld *world, btScalar timeStep)
{
    int numManifolds = world->getDispatcher()->getNumManifolds();
    if(numManifolds >= 1)
    {
        cout << "collision" << endl;
        glClearColor(0.0,0.7,0.8,1.0);
    }
    else if(numManifolds < 1)
    {
       glClearColor(0.0,0.3,0.8,1.0);
    }