PHP में CURL क्या है?


220

PHP में, मुझे कई PHP प्रोजेक्ट्स में cURL शब्द दिखाई देता है। यह क्या है? यह कैसे काम करता है?

संदर्भ लिंक: cURL



1
कृपया नीचे दिए गए 2 लिंक की जांच करें, मुझे लगता है कि यह समझने में मदद करेगा कि CURL क्या है। phpsense.com/2007/php-curl-functions blog.unitedheroes.net/curl
धवल

जवाबों:


245

cURL एक पुस्तकालय है जो आपको PHP में HTTP अनुरोध करने देता है। इसके बारे में (और अधिकांश अन्य एक्सटेंशन) जानने के लिए आपको जो कुछ भी चाहिए वह PHP मैनुअल में मिल सकता है ।

PHP के cURL फ़ंक्शन का उपयोग करने के लिए आपको »libcurl पैकेज को स्थापित करने की आवश्यकता है। PHP के लिए आवश्यक है कि आप libcurl 7.0.2-beta या उच्चतर का उपयोग करें। PHP 4.2.3 में, आपको libcurl संस्करण 7.9.0 या उच्चतर की आवश्यकता होगी। PHP 4.3.0 से, आपको एक libcurl संस्करण की आवश्यकता होगी जो 7.9.8 या उच्चतर है। PHP 5.0.0 को एक libcurl संस्करण 7.10.5 या अधिक की आवश्यकता होती है।

आप बिना cURL के HTTP अनुरोध कर सकते हैं, हालांकि, इसे allow_url_fopenआपकी php.iniफ़ाइल में सक्षम करने की आवश्यकता है ।

// Make a HTTP GET request and print it (requires allow_url_fopen to be enabled)
print file_get_contents('http://www.example.com/');

1
@ जोहान्स, क्या HTTP पोस्ट अनुरोध बिना cURL के संभव हैं?
पचेरियर

2
इसका अर्थ है, यदि सर्वर में 'allow_url_fopen' सक्षम नहीं है, तो हम file_get_contents () फ़ंक्शन का उपयोग नहीं कर सकते हैं, लेकिन उस स्थिति में हम समान उद्देश्य के लिए कर्ल फ़ंक्शन का उपयोग कर सकते हैं? क्या मैं सही हूँ?
अरुण

3
@ अरुन हाँ, यदि 'allow_url_fopen' सक्षम नहीं है, तो आप file_get_contents () func के बजाय समान कार्य के लिए कर्ल का उपयोग कर सकते हैं। कर्ल आपको POST डेटा, कुकीज़ आदि जैसे अधिक विकल्प सेट करने में सक्षम बनाता है, जो file_get_contents () प्रदान नहीं करता है।
दिनेश नगर

157

cURL एक ऐसा तरीका है जिससे आप HTML कोड प्राप्त करने के लिए अपने कोड से URL हिट कर सकते हैं। cURL का अर्थ क्लाइंट URL है जो आपको अन्य URL से जुड़ने और अपने कोड में उनकी प्रतिक्रियाओं का उपयोग करने की अनुमति देता है।


3
जावास्क्रिप्ट में यह उसी तरह है जैसे आप अपने कोड में अजाक्स करते हैं। PHP के साथ अलग-अलग चीजें आप सिंक्रोनाइज़ करते हैं जबकि जावास्क्रिप्ट में आप aysnchronously करते हैं।
फारिस रेहान

68

PHP में CURL:

सारांश:

curl_execPHP में आदेश का उपयोग करने के लिए एक पुल है curlकंसोल से। curl_exec इसे जल्दी और आसानी से GET / POST अनुरोधों को आसान बनाता है, JSON जैसे अन्य सर्वरों से प्रतिक्रियाएं प्राप्त करता है और फाइलें डाउनलोड करता है।

चेतावनी, खतरा:

curlगलत और खतरनाक है अगर अनुचित तरीके से उपयोग किया जाता है क्योंकि यह इंटरनेट में डेटा बाहर से प्राप्त करने के बारे में है। कोई आपके कर्ल और अन्य सर्वर के बीच मिल सकता है और rm -rf /आपकी प्रतिक्रिया में इंजेक्ट कर सकता है, और फिर मुझे एक कंसोल पर क्यों छोड़ा गया है और ls -lयह अब काम नहीं करता है? क्योंकि आपने कर्ल की खतरनाक शक्ति को कम करके आंका है। कर्ल से वापस आने वाली किसी भी चीज़ पर भरोसा न करें, भले ही आप अपने सर्वर से बात कर रहे हों। आप उनके धन के मूर्खों को राहत देने के लिए मैलवेयर वापस खींच सकते हैं।

उदाहरण:

ये Ubuntu 12.10 पर किए गए थे

  1. कमांडलाइन से मूल कर्ल:

    el@apollo:/home/el$ curl http://i.imgur.com/4rBHtSm.gif > mycat.gif
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  492k  100  492k    0     0  1077k      0 --:--:-- --:--:-- --:--:-- 1240k

    फिर आप फ़ायरफ़ॉक्स में अपना जिफ़ खोल सकते हैं:

    firefox mycat.gif

    टोक्सोप्लाज्मा गोंडी को विकसित करने वाली शानदार बिल्लियाँ महिलाओं को चारों ओर बिल्लियों को रखने के लिए प्रेरित करती हैं और इसी तरह पुरुषों को महिलाओं को रखने के लिए।

  2. CURL उदाहरण को google.com हिट करने का अनुरोध मिलता है, कमांडो को प्रतिध्वनि:

    यह phpsh टर्मिनल के माध्यम से किया जाता है:

    php> $ch = curl_init();
    
    php> curl_setopt($ch, CURLOPT_URL, 'http://www.google.com');
    
    php> curl_exec($ch);

    जो कंसंटेड html और जावास्क्रिप्ट (गूगल से) कंसोल में गड़बड़ी को प्रिंट और डंप करता है।

  3. cURL उदाहरण ने प्रतिक्रिया पाठ को एक चर में रखा:

    यह phpsh टर्मिनल के माध्यम से किया जाता है:

    php> $ch = curl_init();
    
    php> curl_setopt($ch, CURLOPT_URL, 'http://i.imgur.com/wtQ6yZR.gif');
    
    php> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
    php> $contents = curl_exec($ch);
    
    php> echo $contents;

    चर में अब बाइनरी है जो एक बिल्ली का एक एनिमेटेड जिफ है, संभावनाएं अनंत हैं।

  4. एक PHP फ़ाइल के भीतर से एक कर्ल करें:

    इस कोड को myphp.php नामक फ़ाइल में रखें:

    <?php
      $curl_handle=curl_init();
      curl_setopt($curl_handle,CURLOPT_URL,'http://www.google.com');
      curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
      curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
      $buffer = curl_exec($curl_handle);
      curl_close($curl_handle);
      if (empty($buffer)){
          print "Nothing returned from url.<p>";
      }
      else{
          print $buffer;
      }
    ?>

    फिर इसे कमांडलाइन के माध्यम से चलाएं:

    php < myphp.php

    आपने myphp.php चलाया और php दुभाषिया के माध्यम से उन कमांड्स को निष्पादित किया और स्क्रीन पर एक टन गंदे html और जावास्क्रिप्ट को डंप किया।

    आप कर्ल के साथ कर सकते हैं GETऔर POSTअनुरोध कर सकते हैं , आप जो कुछ भी कर रहे हैं वह यहां निर्दिष्ट मापदंडों के अनुसार है: HTTP नौकरियों को स्वचालित करने के लिए कर्ल का उपयोग करना

खतरे की याद:

यदि आप इसकी किसी भी व्याख्या और क्रियान्वित हो जाते हैं, तो इसके चारों ओर कर्लिंग आउटपुट से सावधान रहें, आपका बॉक्स स्वामित्व में है और आपके क्रेडिट कार्ड की जानकारी तीसरे पक्ष को बेची जाएगी और आपको अलबामा के एक-मैन फ़्लोरिंग कंपनी से एक रहस्यमयी $ 900 चार्ज मिलेगा। विदेशी क्रेडिट कार्ड धोखाधड़ी अपराध की अंगूठी के लिए सामने।


2
क्या आप यहां बताए गए 'खतरे' का समर्थन करते हुए एक लिंक प्रदान कर सकते हैं?
floatingLomas

1
@floatingLomas एरिक क्या समझाने की कोशिश करता है एक समस्या है जो सभी उपयोगकर्ता-प्रदान की गई सामग्री के साथ मौजूद है: आप किसी पर भरोसा नहीं कर सकते। उपयोगकर्ता द्वारा प्रदान की गई सामग्री के साथ, आपके आवेदन में दुर्भावनापूर्ण कोड को इंजेक्ट करने के लिए एक साधारण MITM का उपयोग करके cURL का शोषण करना संभव है। बेशक यह केवल एक समस्या है अगर इसे "व्याख्या और निष्पादित" किया जाता है जैसा कि एरिक ने सही कहा है। Eval की खोज करना बुराई है और आपको बहुत सारे संभावित सुरक्षा जोखिम मिलेंगे (जैसे stackoverflow.com/questions/951373/when-is-eval-evil-in-php )
Fabio Poloni

7
@floatingLomas ... भी, एरिक को अलबामा के बारे में लगता है कि अलबामा की एक-व्यक्ति फ़्लोरिंग कंपनियों ने उनसे $ 900 का शुल्क लिया है।
फैबियो पोलोनी

क्या आइफ्रेम के अलावा कोई विकल्प है?
जेनिफर मिशेल

1
यह व्यामोह नहीं है अगर वे वास्तव में आप फर्श बेचने के लिए कर रहे हैं।
piersb

24

cURL एक ऐसा तरीका है जिससे आप HTML कोड प्राप्त करने के लिए अपने कोड से URL को हिट कर सकते हैं। यह PHP भाषा से कमांड लाइन cURL के लिए उपयोग किया जाता है।

<?php
// Step 1
$cSession = curl_init(); 
// Step 2
curl_setopt($cSession,CURLOPT_URL,"http://www.google.com/search?q=curl");
curl_setopt($cSession,CURLOPT_RETURNTRANSFER,true);
curl_setopt($cSession,CURLOPT_HEADER, false); 
// Step 3
$result=curl_exec($cSession);
// Step 4
curl_close($cSession);
// Step 5
echo $result;
?> 

चरण 1: एक कर्ल सत्र का उपयोग करके प्रारंभ करें curl_init()

चरण 2: के लिए विकल्प सेट करें CURLOPT_URL। यह मान वह URL है जिसे हम अनुरोध भेज रहे हैं। curlपैरामीटर का उपयोग करके खोज शब्द जोड़ें q=। के लिए विकल्प सेट करें CURLOPT_RETURNTRANSFER। यह सच है कि कर्ल को प्रिंट आउट के बजाय स्ट्रिंग वापस करने के लिए कहेंगे। CURLOPT_HEADERवापसी के मूल्य में शीर्षलेख को अनदेखा करने के लिए , झूठा कर्ल को बताएगा के लिए विकल्प सेट करें ।

चरण 3: उपयोग कर कर्ल सत्र निष्पादित करें curl_exec()

चरण 4: हमारे द्वारा बनाए गए कर्ल सत्र को बंद करें।

चरण 5: रिटर्न स्ट्रिंग को आउटपुट करें।

public function curlCall($apiurl, $auth, $rflag)
{
    $ch = curl_init($apiurl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    if($auth == 'auth') { 
        curl_setopt($ch, CURLOPT_USERPWD, "passw:passw");
    } else {
        curl_setopt($ch, CURLOPT_USERPWD, "ss:ss1");
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $dt = curl_exec($ch);        
    curl_close($ch);
    if($rflag != 1) {
        $dt = json_decode($dt,true);        
    }
    return $dt;
}

यह प्रमाणीकरण के लिए भी उपयोग किया जाता है। हम प्रमाणीकरण के लिए उपयोगकर्ता नाम और पासवर्ड भी सेट कर सकते हैं।

अधिक कार्यक्षमता के लिए, उपयोगकर्ता पुस्तिका या निम्न ट्यूटोरियल देखें:

http://php.net/manual/en/ref.curl.php
http://www.startutorial.com/articles/view/php-cwl


16

सबसे पहले आइए हम कर्ल, लिबासर्ल और PHP / cURL की अवधारणाओं को समझें।

  1. कर्ल : URL सिंटैक्स का उपयोग करके फ़ाइलें प्राप्त करने या भेजने के लिए एक कमांड लाइन उपकरण।

  2. libcurl : डैनियल स्टेनबर्ग द्वारा बनाई गई एक लाइब्रेरी, जो आपको कई अलग-अलग प्रकार के प्रोटोकॉल के साथ कई अलग-अलग प्रकार के सर्वर से कनेक्ट और संचार करने की अनुमति देती है। libcurl वर्तमान में http, https, ftp, gopher, telnet, dict, file, और ldap प्रोटोकॉल का समर्थन करता है। libcurl HTTPS प्रमाणपत्र, HTTP POST, HTTP PUT, FTP अपलोडिंग का समर्थन करता है (यह PHP के FTP एक्सटेंशन के साथ भी किया जा सकता है), HTTP फॉर्म आधारित अपलोड, परदे के पीछे, कुकीज़, और उपयोगकर्ता + पासवर्ड प्रमाणीकरण।

  3. PHP / cURL : PHP का मॉड्यूल जो PHP प्रोग्राम के लिए libcurl का उपयोग करना संभव बनाता है।

इसे कैसे उपयोग करे:

चरण 1 : एक कर्ल सत्र का उपयोग करें curl_init () को प्रारंभ करें।

चरण 2 : CURLOPT_URL के लिए विकल्प सेट करें। यह मान वह URL है जिसे हम अनुरोध भेज रहे हैं। पैरामीटर "q =" का उपयोग करके एक खोज शब्द "कर्ल" भेजें। सेट विकल्प CURLOPT_RETURNTRANSFER, सच कर्ल को बताएगा कि इसे छापने के बजाय स्ट्रिंग वापस लौटाएं। CURLOPT_HEADER के लिए विकल्प सेट करें, गलत बताएगा कर्ल रिटर्न मान में हेडर को अनदेखा करेगा।

चरण 3 : कर्ल_सेक्स () का उपयोग करके कर्ल सत्र निष्पादित करें।

चरण 4 : हमने बनाया कर्ल सत्र बंद करें।

चरण 5 : रिटर्न स्ट्रिंग आउटपुट करें।

डेमो बनाएं :

आपको दो PHP फाइलें बनाने और उन्हें एक फ़ोल्डर में रखने की आवश्यकता होगी जो आपका वेब सर्वर PHP फ़ाइलों से सेवा कर सकता है। मेरे मामले में मैंने उन्हें सरलता के लिए / var / www / में डाल दिया।

1. हेलोसोवेर्स.फपी और 2. डेमो.फ्प

helloservice.php बहुत ही सरल है और अनिवार्य रूप से किसी भी डेटा को वापस मिल जाता है:

<?php
  // Here is the data we will be sending to the service
  $some_data = array(
    'message' => 'Hello World', 
    'name' => 'Anand'
  );  

  $curl = curl_init();
  // You can also set the URL you want to communicate with by doing this:
  // $curl = curl_init('http://localhost/echoservice');

  // We POST the data
  curl_setopt($curl, CURLOPT_POST, 1);
  // Set the url path we want to call
  curl_setopt($curl, CURLOPT_URL, 'http://localhost/demo.php');  
  // Make it so the data coming back is put into a string
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  // Insert the data
  curl_setopt($curl, CURLOPT_POSTFIELDS, $some_data);

  // You can also bunch the above commands into an array if you choose using: curl_setopt_array

  // Send the request
  $result = curl_exec($curl);

  // Get some cURL session information back
  $info = curl_getinfo($curl);  
  echo 'content type: ' . $info['content_type'] . '<br />';
  echo 'http code: ' . $info['http_code'] . '<br />';

  // Free up the resources $curl is using
  curl_close($curl);

  echo $result;
?>

2.demo.php पेज, आप परिणाम देख सकते हैं:

<?php 
   print_r($_POST);
   //content type: text/html; charset=UTF-8
   //http code: 200
   //Array ( [message] => Hello World [name] => Anand )
?>

हाय, आप कृपया मुझे पृष्ठ के बारे में 1. का उपयोग कर-curl.php कहते थे
कावेह

@Kaveh: क्षमा करें, मैं दूसरा पृष्ठ भूल गया। अद्यतन उत्तर। अब कृपया जाँच करें।
आनंद पांडे

12

PHP के लिए CURL एक्सटेंशन को आपके PHP स्क्रिप्ट के भीतर से विभिन्न प्रकार के वेब संसाधनों का उपयोग करने की अनुमति देने के लिए डिज़ाइन किया गया है।



7

cURL

  • cURL एक ऐसा तरीका है जिससे आप HTML कोड प्राप्त करने के लिए अपने कोड से URL को हिट कर सकते हैं।
  • यह PHP भाषा से कमांड लाइन cURL के लिए उपयोग किया जाता है।
  • cURL एक पुस्तकालय है जो आपको PHP में HTTP अनुरोध करने देता है।

PHP डैनियल स्टेनबर्ग द्वारा बनाई गई एक लाइब्रेरी libcurl का समर्थन करती है, जो आपको कई अलग-अलग प्रकार के प्रोटोकॉल के साथ कई अलग-अलग प्रकार के सर्वर से कनेक्ट और संचार करने की अनुमति देती है। libcurl वर्तमान में http, https, ftp, gopher, telnet, dict, file, और ldap प्रोटोकॉल का समर्थन करता है। libcurl HTTPS प्रमाणपत्र, HTTP POST, HTTP PUT, FTP अपलोडिंग का समर्थन करता है (यह PHP के FTP एक्सटेंशन के साथ भी किया जा सकता है), HTTP फॉर्म आधारित अपलोड, परदे के पीछे, कुकीज़, और उपयोगकर्ता + पासवर्ड प्रमाणीकरण।

एक बार आपने PHP को cURL समर्थन के साथ संकलित कर लिया है, तो आप cURL फ़ंक्शन का उपयोग करना शुरू कर सकते हैं। CURL फ़ंक्शन के पीछे मूल विचार यह है कि आप कर्ल_इनिट () का उपयोग करके एक cURL सत्र को आरंभ करते हैं, फिर आप curl_setopt () के माध्यम से स्थानांतरण के लिए अपने सभी विकल्प सेट कर सकते हैं, फिर आप curl_exec () और तब आप सत्र को निष्पादित कर सकते हैं curl_close () का उपयोग करके अपना सत्र समाप्त करें।

नमूना कोड

// error reporting
error_reporting(E_ALL);
ini_set("display_errors", 1);

//setting url
$url = 'http://example.com/api';

//data
$data = array("message" => "Hello World!!!");

try {
    $ch = curl_init($url);
    $data_string = json_encode($data);

    if (FALSE === $ch)
        throw new Exception('failed to initialize');

        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)));
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

        $output = curl_exec($ch);

    if (FALSE === $output)
        throw new Exception(curl_error($ch), curl_errno($ch));

    // ...process $output now
} catch(Exception $e) {

    trigger_error(sprintf(
        'Curl failed with error #%d: %s',
        $e->getCode(), $e->getMessage()),
        E_USER_ERROR);
}

अधिक जानकारी के लिए, कृपया देखें -


1

कर्ल और कुछ नहीं बल्कि PHP का एक विस्तार है जो मुख्य रूप से लिनक्स / यूनिक्स कमांड लाइन टूल के लिए लिखे गए सामान्य कर्ल कमांड और लाइब्रेरी के व्यवहार को विरासत में मिला है।

कर्ल क्या है? क्लाइंट URL के लिए cURL स्टैंड। CURL का उपयोग किसी भी URL पर डेटा भेजने के लिए किया जाता है। क्या कर्ल वास्तव में है के बारे में अधिक विस्तार के लिए, आप CURL वेबसाइट पर जा सकते हैं

PHP में cURL अब एक ही अवधारणा को PHP में पेश किया जाता है, विभिन्न प्रोटोकॉल के माध्यम से किसी भी सुलभ URL को डेटा भेजने के लिए, उदाहरण के लिए, HTTP या FTP। अधिक विस्तार के लिए, आप PHP कर्ल ट्यूटोरियल का संदर्भ ले सकते हैं


1

Php कर्ल फ़ंक्शन (POST, GET, DELETE, PUT)

function curl($post = array(), $url, $token = '', $method = "POST", $json = false, $ssl = true){
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, $url);    
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    if($method == 'POST'){
        curl_setopt($ch, CURLOPT_POST, 1);
    }
    if($json == true){
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json','Authorization: Bearer '.$token,'Content-Length: ' . strlen($post)));
    }else{
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSLVERSION, 6);
    if($ssl == false){
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    }
    // curl_setopt($ch, CURLOPT_HEADER, 0);     
    $r = curl_exec($ch);    
    if (curl_error($ch)) {
        $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $err = curl_error($ch);
        print_r('Error: ' . $err . ' Status: ' . $statusCode);
        // Add error
        $this->error = $err;
    }
    curl_close($ch);
    return $r;
}

0

Php कर्ल क्लास (GET, POST, FILES UPLOAD, SESSIONS, SST POST JSON, FORCE SELFSIGNED SSL / TLS):

<?php
    // Php curl class
    class Curl {

        public $error;

        function __construct() {}

        function Get($url = "http://hostname.x/api.php?q=jabadoo&txt=gin", $forceSsl = false,$cookie = "", $session = true){
            // $url = $url . "?". http_build_query($data);
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, false);        
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, 60);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            if($session){
                curl_setopt($ch, CURLOPT_COOKIESESSION, true );
                curl_setopt($ch , CURLOPT_COOKIEJAR, 'cookies.txt');
                curl_setopt($ch , CURLOPT_COOKIEFILE, 'cookies.txt');
            }
            if($forceSsl){
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 1, 2
            }
            if(!empty($cookie)){            
                curl_setopt($ch, CURLOPT_COOKIE, $cookie); // "token=12345"
            }
            $info = curl_getinfo($ch);
            $res = curl_exec($ch);        
            if (curl_error($ch)) {
                $this->error = curl_error($ch);
                throw new Exception($this->error);
            }else{
                curl_close($ch);
                return $res;
            }        
        }

        function GetArray($url = "http://hostname.x/api.php", $data = array("name" => "Max", "age" => "36"), $forceSsl = false, $cookie = "", $session = true){
            $url = $url . "?". http_build_query($data);
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, false);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, 60);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            if($session){
                curl_setopt($ch, CURLOPT_COOKIESESSION, true );
                curl_setopt($ch , CURLOPT_COOKIEJAR, 'cookies.txt');
                curl_setopt($ch , CURLOPT_COOKIEFILE, 'cookies.txt');
            }
            if($forceSsl){
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 1, 2
            }
            if(!empty($cookie)){
                curl_setopt($ch, CURLOPT_COOKIE, $cookie); // "token=12345"
            }
            $info = curl_getinfo($ch);
            $res = curl_exec($ch);        
            if (curl_error($ch)) {
                $this->error = curl_error($ch);
                throw new Exception($this->error);
            }else{
                curl_close($ch);
                return $res;
            }        
        }

        function PostJson($url = "http://hostname.x/api.php", $data = array("name" => "Max", "age" => "36"), $forceSsl = false, $cookie = "", $session = true){
            $data = json_encode($data);
            $ch = curl_init($url);                                                                      
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);                                                                  
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, 60);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            if($session){
                curl_setopt($ch, CURLOPT_COOKIESESSION, true );
                curl_setopt($ch , CURLOPT_COOKIEJAR, 'cookies.txt');
                curl_setopt($ch , CURLOPT_COOKIEFILE, 'cookies.txt');
            }
            if($forceSsl){
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 1, 2
            }
            if(!empty($cookie)){
                curl_setopt($ch, CURLOPT_COOKIE, $cookie); // "token=12345"
            }
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Authorization: Bearer helo29dasd8asd6asnav7ffa',                                                      
                'Content-Type: application/json',                                                                                
                'Content-Length: ' . strlen($data))                                                                       
            );        
            $res = curl_exec($ch);
            if (curl_error($ch)) {
                $this->error = curl_error($ch);
                throw new Exception($this->error);
            }else{
                curl_close($ch);
                return $res;
            } 
        }

        function Post($url = "http://hostname.x/api.php", $data = array("name" => "Max", "age" => "36"), $files = array('ads/ads0.jpg', 'ads/ads1.jpg'), $forceSsl = false, $cookie = "", $session = true){
            foreach ($files as $k => $v) {
                $f = realpath($v);
                if(file_exists($f)){
                    $fc = new CurlFile($f, mime_content_type($f), basename($f)); 
                    $data["file[".$k."]"] = $fc;
                }
            }
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");        
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    
            curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); // !!!! required as of PHP 5.6.0 for files !!!
            curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)");
            curl_setopt($ch, CURLOPT_TIMEOUT, 60);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            if($session){
                curl_setopt($ch, CURLOPT_COOKIESESSION, true );
                curl_setopt($ch , CURLOPT_COOKIEJAR, 'cookies.txt');
                curl_setopt($ch , CURLOPT_COOKIEFILE, 'cookies.txt');
            }
            if($forceSsl){
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 1, 2
            }
            if(!empty($cookie)){
                curl_setopt($ch, CURLOPT_COOKIE, $cookie); // "token=12345"
            }
            $res = curl_exec($ch);
            if (curl_error($ch)) {
                $this->error = curl_error($ch);
                throw new Exception($this->error);
            }else{
                curl_close($ch);
                return $res;
            } 
        }
    }
?>

उदाहरण:

<?php
    $urlget = "http://hostname.x/api.php?id=123&user=bax";
    $url = "http://hostname.x/api.php";
    $data = array("name" => "Max", "age" => "36");
    $files = array('ads/ads0.jpg', 'ads/ads1.jpg');

    $curl = new Curl();
    echo $curl->Get($urlget, true, "token=12345");
    echo $curl->GetArray($url, $data, true);
    echo $curl->Post($url, $data, $files, true);
    echo $curl->PostJson($url, $data, true);
?>

Php फ़ाइल: api.php

<?php
    /*
    $Cookie = session_get_cookie_params();
    print_r($Cookie);
    */
    session_set_cookie_params(9000, '/', 'hostname.x', isset($_SERVER["HTTPS"]), true);
    session_start();

    $_SESSION['cnt']++;
    echo "Session count: " . $_SESSION['cnt']. "\r\n";
    echo $json = file_get_contents('php://input');
    $arr = json_decode($json, true);
    echo "<pre>";
    if(!empty($json)){ print_r($arr); }
    if(!empty($_GET)){ print_r($_GET); }
    if(!empty($_POST)){ print_r($_POST); }
    if(!empty($_FILES)){ print_r($_FILES); }
    // request headers
    print_r(getallheaders());
    print_r(apache_response_headers());
    // Fetch a list of headers to be sent.
    // print_r(headers_list());
?>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.