如何将此命令行curl转换为php curl?

时间:2012-05-01 08:48:13

标签: php curl command-line command

我有一个命令行卷曲的代码,我想转换成PHP。我很挣扎。

这是代码行

$ curl -H "Authorization: 622cee5f8c99c81e87614e9efc63eddb" https://api.service.com/member

大字符串将是我传递给它的变量。

这在PHP中看起来像什么?

3 个答案:

答案 0 :(得分:3)

首先需要分析该行的作用:

$ curl -H "Authorization: 622cee5f8c99c81e87614e9efc63eddb" https://api.service.com/member

这并不复杂,您可以在curl's manpage上找到所有开关:

  

-H, --header <header> :( HTTP)获取网页时使用的额外标头。您可以指定任意数量的额外标头。 [...]

您可以在PHP中通过curl_setopt_arrayDocs添加标题(所有可用选项都在curl_setoptDocs解释):

$ch = curl_init('https://api.service.com/member');
// set URL and other appropriate options
$options = array(        
    CURLOPT_HEADER => false,
    CURLOPT_HTTPHEADER => array("Authorization: 622cee5f8c99c81e87614e9efc63eddb"),
);
curl_setopt_array($ch, $options);
curl_exec($ch); // grab URL and pass it to the browser
curl_close($ch);

如果curl被阻止,你也可以使用PHP的HTTP功能,即使卷曲不可用也能正常工作(如果卷曲在内部可用,则需要卷曲):

$options = array('http' => array(
    'header' => array("Authorization: 622cee5f8c99c81e87614e9efc63eddb"),
));
$context = stream_context_create($options);
$result = file_get_contents('https://api.service.com/member', 0, $context);

答案 1 :(得分:1)

您应该查看php中的curl_*函数。 使用curl_setopt(),您可以设置请求的标头。

答案 2 :(得分:1)

1)您可以使用Curl functions

2)您可以使用exec()

exec('curl -H "Authorization: 622cee5f8c99c81e87614e9efc63eddb" https://api.service.com/member');

3)如果您只想将信息作为字符串...

,则可以使用file_get_contents()
<?php
// Create a stream
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Authorization: 622cee5f8c99c81e87614e9efc63eddb"
  )
);

$context = stream_context_create($opts);

// Open the file using the HTTP headers set above
$file = file_get_contents('https://api.service.com/member', false, $context);
?>