2012-12-19 49 views
1

隨着cUrl我想用SimpleXmlElement獲取一個xml文件來讀取它。但是因爲cUrl繼續在響應中發送標題信息,所以我的XML文檔無效。如果設置爲false,cUrl會繼續發送標題信息

如何離開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); 

提前感謝!

尼克

+0

你在使用什麼庫?新的Curl()不是普通的PHP ... – Rygu

+0

我利用 使用Zend \ Http \ Request; 使用Zend \ Http \ Client; 使用Zend \ Http \ Client \ Adapter \ Curl; – directory

回答

0

根據PHP手冊,CURLOPT_HEADER應設置爲true或false。

爲了去除頭輸出,只需添加以下代碼:

CURLOPT_HEADER => false 

我不知道捲曲類你使用的是什麼,因爲有內置的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); 

這是否對你的工作?否則我會給你一個更新的答案。

+0

不,這不是正確的答案,我已經解決:) – directory

0

需要使用'$ response-> getBody();' !這個伎倆。

$ request = new 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; 
相關問題