使用未定义的常量 CURLOPT_POST - 假定为“CURLOPT_POST”
Posted
技术标签:
【中文标题】使用未定义的常量 CURLOPT_POST - 假定为“CURLOPT_POST”【英文标题】:Use of undefined constant CURLOPT_POST - assumed 'CURLOPT_POST' 【发布时间】:2014-05-07 23:02:02 【问题描述】:我正在通过 Kohana 3.2 发出 cURL 请求,但是当它尝试访问 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();
我已经使用以下方法测试了 curl 作为扩展是活动的:
if (in_array ('curl', get_loaded_extensions()))
echo '1';
else
echo '0';
这里有什么问题?我使用的是 Windows 7、PHP 5.4.12 和 Apache 2.4。
【问题讨论】:
你能在你实际使用CURLOPT_POST
的地方展示这段代码吗?
将代码添加到我的帖子中
您是否已经对脚本中的任何 curl 函数进行了实际调用?如果 curl 扩展不可用,可以使用undefined function curl_....
让 php 摆脱困境?如果不是(或不确定),最好通过 phpinfo()、extension_loaded('curl')、... 仔细检查
不,你能在你提出实际请求的地方显示代码吗?您发布的代码是来自 Kohana 库的 sn-p。您是通过请求工厂发出请求吗?如果是这样,如何?显示那部分代码..例如$request = Request::factory($url)->method('POST')->post('key', 'value');
我知道这还为时过早,但这难道不是来自未引用数组键的预期行为吗?
【参考方案1】:
首先,让我们检查一下你的服务器上是否安装了php-curl
aptitude search php-curl
或
aptitude search php5.6-curl
如果还没有安装,那就安装吧
sudo apt-get install php5.6-curl
【讨论】:
这将不起作用,因为提问者明确指出他们有旧版本的 PHP (5.4.12),这与php5.6-curl
不兼容。在提供答案之前,请仔细阅读问题。此外,这个问题是在 2 年前提出的,并且已经有了一个公认的解决方案。请尝试通过提供答案来避免将问题“颠倒”到顶部,除非该问题尚未标记为已解决,或者您找到了解决该问题的更好的替代方法:)【参考方案2】:
我注意到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
中的行解决了我的问题。
【讨论】:
以上是关于使用未定义的常量 CURLOPT_POST - 假定为“CURLOPT_POST”的主要内容,如果未能解决你的问题,请参考以下文章
使用未定义的常量 MCRYPT_RIJNDAEL_128 - 假定为“MCRYPT_RIJNDAEL_128”