使用未定义的常量 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.dllC:\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”

警告:更新到 PHP 7.2 后使用未定义的常量 _ - 假定为“_”(这将在 PHP 的未来版本中引发错误)

使用未定义的常量用户 - 假定用户使用 php7.2

使用未定义的常量 MCRYPT_BLOWFISH

PHP - 使用未定义的常量

Laravel View Composer“使用未定义的常量”