PHP Curl,我在哪里可以找到常量的整数等值列表

时间:2010-12-08 18:57:04

标签: php curl integer constants

我正在使用Codeigniter Curl库,作者使用curl选项的等价整数。 php手册对curl_setopt_array说明了这一点:

  

键应该是有效的curl_setopt()   常数或其整数   等同物。

如何计算常数的整数当量?我用谷歌搜索了但没找到任何东西。

谢谢,Mark

5 个答案:

答案 0 :(得分:15)

$arr = get_defined_constants(true);
var_dump($arr['curl']);

答案 1 :(得分:5)

扩展 ajreal 的回答

$constants = get_defined_constants(true);
$curlOptLookup = preg_grep('/^CURLOPT_/', array_flip($constants['curl']));

var_dump($curlOptLookup);

以上给出了整数查找,因此以下内容可行:

echo $curlOptLookup[119]; // outputs "CURLOPT_FTP_SSL"

如果你想要这些选项,需要再次翻转它的正确方法:

$curlOpts = array_flip($curlOptLookup);

echo $curlOpts['CURLOPT_FTP_SSL']; // outputs 119

答案 2 :(得分:1)

回声/打印它们......

示例:

<?php
echo(CURLOPT_URL);

答案 3 :(得分:1)

请注意,某些常量具有与它们关联的相同值,在上面的答案中它们将被覆盖。要获得完整列表,您不能填充数组。

$arr = get_defined_constants(true);
foreach ($arr['curl'] as $k => $v) {
    if (preg_match('/CURLOPT/',$k)) {
            print $v." => '$k',\n";
    }
}

例如输出10026:-

10026 => 'CURLOPT_SSLCERTPASSWD'
10026 => 'CURLOPT_SSLKEYPASSWD'
10026 => 'CURLOPT_KEYPASSWD'

答案 4 :(得分:1)

@Orbling的使用curlopt值索引的数组的技术在大多数情况下都是正确的,除了您应该在翻转{em>之前过滤掉CURLOPT_*元素。数组,因为 not 的各个CURLOPT_*CURLE_*CURLSSH_*(等)选项之间的值存在冲突,因此它们只是彼此的别名。 / p>

例如,CURLOPT_POSTCURLE_TOO_MANY_REDIRECTS的值均为47。调用array_flip($constants['curl'])时,后者将覆盖前者,而您将丢失CURLOPT_POST

所以也许可以这样做:

$constants = get_defined_constants(true);
$curlOptKeys = preg_grep('/^CURLOPT_/', array_keys($constants['curl']));
$curlOpts = array_intersect_key($constants['curl'], array_flip($curlOptKeys));
$curlOptLookup = array_flip($curlOpts);

echo $curlOpts['CURLOPT_POST']; // 47
echo $curlOptLookup[47]; // 'CURLOPT_POST'