簡體   English   中英

如何將命令行curl轉換為php curl

[英]how to convert command line curl to php curl

我需要將此命令行cURL轉換為php cURL並回顯結果

curl -H "Content-Type: application/json" -d '{ "code":"<code>", "client_id": "<client_id>", "client_secret": "<client_secret>"}' https://www.example.com/oauth/access_token

如何才能做到這一點?

試試這個簡單的方法:

$data = array("code"=>"123", "client_id"=> "123", "client_secret"=> "123");                                                                 
$data_string = json_encode($data);                                                                                   

$ch = curl_init('https://www.example.com/oauth/access_token');                                                                      
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: ' . strlen($data_string))                                                                       
);                                                                                                                   

$result = curl_exec($ch);

將123替換為您的值。 這是curl_setopt()的手冊

假設您需要將數據發布到URL,這樣的事情應該可以工作:

<?php
  // URL that the data will be POSTed to
  $curl_url = 'https://www.example.com/oauth/access_token';
  // Convert the data into an array
  $curl_data_arr = array('{ "code":"<code>", "client_id": "<client_id>", "client_secret": "<client_secret>"}');
  // Prepare to post as an array
  $curl_post_fields = array();
  foreach ($curl_data_arr as $key => $value) {
    // Assuming you need the values url encoded, this is an easy way
    $curl_post_fields[] = $key . '=' . urlencode($value);
  }
  $curl_header = array('Content-Type: application/json');
  $curl_array = array(
    CURLOPT_URL => $curl_url,
    CURLOPT_HTTPHEADER => $curl_header,
    CURLOPT_POSTFIELDS => implode('&', $curl_post_fields),
    CURLOPT_POST => TRUE,
    CURLOPT_RETURNTRANSFER => TRUE,
  );
  // Initialize cURL
  $curl = curl_init();
  // Tell cURL to use the array of options we just set up
  curl_setopt_array($curl, $curl_array);
  // Assign the result to $data
  $data = curl_exec($curl);
  // Empty variable (at first) to avoid errors being displayed
  $result = '';
  // Check for errors
  if ($error = curl_error($curl)) {
    // If there's an error, assign its value to $result
    $result = $error;
  }
  curl_close($curl);
  // If there's no errors...
  if (empty($error)) {
    // ... instead assign the value of $data to $result
    $result = $data;
  }
  echo $result;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM