2014-03-28 114 views
6

我通過Kohana的3.2使捲曲的要求,但我得到以下錯誤,當它試圖訪問CURLOPT_POST常數:使用未定義的常量CURLOPT_POST的 - 假設「CURLOPT_POST」

Use of undefined constant CURLOPT_POST - assumed 'CURLOPT_POST' 

從Kohana的3.2 system/classes/kohana/request/client/curl.php

public function _set_curl_request_method(Request $request, array $options) 
{ 
    switch ($request->method()) { 
     case Request::POST: 
      $options[CURLOPT_POST] = TRUE; 
      break; 
     case Request::PUT: 
      $options[CURLOPT_PUT] = TRUE; 
      break; 
     default: 
      $options[CURLOPT_CUSTOMREQUEST] = $request->method(); 
      break; 
    } 
    return $options; 
} 

我的應用程序代碼:

$request = Request::factory($uri); 
$request->query('key', $key); 
$request->post($params); 
$request->method(Request::POST); 

// fails here 
$response = $request->execute(); 

我甲肝e測試了捲曲作爲擴展使用:

if (in_array ('curl', get_loaded_extensions())) 
{ 
    echo '1'; 
} 
else 
{ 
    echo '0'; 
} 

這裏有什麼問題?我正在使用Windows 7,PHP 5.4.12和Apache 2.4。

+0

你可以在那裏顯示你實際使用'CURLOPT_POST'的代碼片段嗎? – kero

+0

將代碼添加到我的帖子中 – xylar

+0

您是否已經對腳本中的任何curl函數進行了一次acutal調用?如果curl擴展名不可用,那麼一個會讓php用'未定義的函數curl _....'保釋出來?如果不是(或者不確定),請通過phpinfo(),extension_loaded('curl'),...來驗證。 – VolkerK

回答

5

我注意到extension=php_curl.dll被註釋掉了C:\wamp\bin\php\php5.4.12\php.ini,但通過C:\wamp\bin\apache\Apache2.4.4\bin\php.ini激活。

我發現在C:\wamp\bin\php\php5.4.12\php.ini中取消註釋行解決了我的問題。

2

首先,讓我們檢查PHP捲曲已經安裝在服務器上通過

aptitude search php-curl 

aptitude search php5.6-curl

如果尚未安裝呢,讓我們通過

sudo apt-get install php5.6-curl 
安裝
+0

這將**不起作用,因爲提問者明確指出他們有一個較舊版本的PHP(5.4。12),這將與'php5.6-curl'不兼容。在提供答案之前,請仔細閱讀問題。另外,這個問題在兩年前被問及,並且已經有了一個可以接受的解決方案。請儘量避免通過向他們提供答案來'碰撞'問題,除非問題還沒有被標記爲已解決,或者您找到了一個更好的替代方法來解決問題:) –

相關問題