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(); $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

PHP にはそのようなクラスが組み込まれていないため、どの cURL クラスを使用しているのかわかりません。

完全なコード:

$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 に答える