1

使用 cUrl,我想在使用 SimpleXmlElement 之后获取一个 xml 文件来读取它。但是因为 cUrl 继续在响应中发送标头信息,所以我的 XML 文档无效。

我该怎么做才能留下 HTTP 标头信息?

我返回的部分数据:

string(8056) "HTTP/1.1 200 OK\r\nServer: Apache-Coyote/1.1\r\nContent-Type: text/xml\r\nDate: Wed, 19 Dec 2012 11:15:45 GMT\r\n\r\n
    <?xml version="1.0"?>\n

我的代码(ZF2)

$request = new Request();
        $request->setUri($url);

        $adapter = new Curl();
        $client  = new Client();
        $client->setAdapter($adapter);

        $adapter->setOptions(array(
            'curloptions' => array(
                CURLOPT_HEADER => 0,
                CURLOPT_RETURNTRANSFER => 1,
                CURLOPT_CONNECTTIMEOUT => 4,
            )
        ));

        $response = $client->dispatch($request);

提前致谢!

缺口

4

2 回答 2

0

需要使用'$response->getBody();' !这成功了。

$request = 新请求();$request->setUri($url);

    $adapter = new Curl();
    $client  = new Client();
    $client->setAdapter($adapter);

    $adapter->setOptions(array(
        'curloptions' => array(
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_CONNECTTIMEOUT => 4,
        )
    ));

    $response = $client->send($request);
    $data = $response->getBody();

    return $data;
于 2012-12-19T14:23:01.080 回答
0

根据 PHP 手册,CURLOPT_HEADER 应该设置为 true 或 false。

要删除标头输出,只需添加以下代码:

CURLOPT_HEADER => false

我不知道您使用的是什么 cURL 类,因为 PHP 中没有此类内置类。

完整代码:

$request = new Request();
$request->setUri($url);

$adapter = new Curl();
$client  = new Client();
$client->setAdapter($adapter);

$adapter->setOptions(array(
    'curloptions' => array(
        CURLOPT_HEADER => false,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_CONNECTTIMEOUT => 4
    )
));

$response = $client->dispatch($request);

这对你有用吗?否则我会给你一个更新的答案。

于 2012-12-19T13:46:42.737 回答