PHP'de cURL nedir?


Yanıtlar:


245

cURL , PHP'de HTTP istekleri yapmanızı sağlayan bir kütüphanedir. Bu konuda bilmeniz gereken her şey (ve diğer birçok uzantı) PHP kılavuzunda bulunabilir .

PHP'nin cURL işlevlerini kullanabilmek için »libcurl paketini kurmanız gerekir. PHP, libcurl 7.0.2-beta veya üstünü kullanmanızı gerektirir. PHP 4.2.3 sürümünde libcurl 7.9.0 veya daha yeni bir sürüme ihtiyacınız olacaktır. PHP 4.3.0'dan itibaren, 7.9.8 veya daha yüksek bir libcurl sürümüne ihtiyacınız olacaktır. PHP 5.0.0, libcurl sürüm 7.10.5 veya üstünü gerektirir.

Dosyanızda allow_url_fopenetkinleştirilmesi gerekmesine rağmen, cURL olmadan da HTTP istekleri yapabilirsiniz 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
@Johannes, HTTP yazı istekleri cURL olmadan mümkün mü?
Pacerier

2
sunucuda 'allow_url_fopen' etkin değilse, file_get_contents () işlevini kullanamadık, ancak bu durumda curl işlevini aynı amaçla kullanabilir miyiz? doğrumuyum?
ARUN

3
@Arun Evet 'allow_url_fopen' etkin değilse file_get_contents () işlevi yerine aynı görev için curl kullanabilirsiniz. Curl, file_get_contents () tarafından sağlanan POST verileri, çerezler vb. Gibi daha fazla seçenek ayarlamanızı sağlar.
Dinesh Nagar

157

cURL, html yanıtı almak için kodunuzdan bir URL'ye erişebileceğiniz bir yöntemdir. cURL, diğer URL'lerle bağlantı kurmanıza ve yanıtlarını kodunuzda kullanmanıza olanak tanıyan müşteri URL'si anlamına gelir.


3
Javascript aynı sizin kodunuzda ajax yapmak gibi. PHP ile farklı şeyler senkronize yaparken Javascript aysnchronous yapmak.
Faris Rayhan

68

PHP'de CURL:

Özet:

curl_execPHP komut kullanımına bir köprüdürcurl konsoldan. curl_exec, GET / POST isteklerini hızlı ve kolay bir şekilde yapmayı, JSON gibi diğer sunuculardan yanıtlar almayı ve dosyaları indirmeyi kolaylaştırır.

Tehlike uyarısı:

curlyanlış kullanıldığında kötü ve tehlikelidir çünkü hepsi internetten veri almakla ilgilidir. Birisi curl ve diğer sunucu arasında gidip rm -rf /yanıtınıza bir enjekte edebilir ve sonra neden bir konsola düştüm vels -l artık çalışmıyor? Çünkü kıvrılmanın tehlikeli gücünü hafife aldınız. Kendi sunucularınızla konuşsanız bile, kıvrılmadan geri dönen hiçbir şeye güvenmeyin. Zenginliklerinin aptallarını rahatlatmak için kötü amaçlı yazılımları geri çekiyor olabilirsiniz.

Örnekler:

Bunlar Ubuntu 12.10'da yapıldı

  1. Komut satırından temel kıvrılma:

    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

    Ardından gifinizi firefox'ta açabilirsiniz:

    firefox mycat.gif

    Toxoplasma gondii'nin geliştiği görkemli kediler, kadınların kedileri etrafında tutmasına ve erkeklerin de kadınları etrafında tutmasına neden olur.

  2. cURL örneği google.com'a basma isteği alır, komut satırına yankılanır:

    Bu phpsh terminali ile yapılır:

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

    Hangi yoğunlaştırılmış html ve javascript (google) konsolu yazdırır ve dökümü.

  3. cURL örneği, yanıt metnini bir değişkene yerleştirir:

    Bu phpsh terminali ile yapılır:

    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;

    Değişken şimdi bir kedinin animasyonlu bir gif olan ikili içerir, olasılıklar sonsuzdur.

  4. Bir PHP dosyasından kıvrılma yapın:

    Bu kodu myphp.php adlı bir dosyaya yerleştirin:

    <?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;
      }
    ?>

    Sonra komut satırı üzerinden çalıştırın:

    php < myphp.php

    Myphp.php dosyasını çalıştırdınız ve php yorumlayıcısı aracılığıyla bu komutları uyguladınız ve ekrana bir ton dağınık html ve javascript döktünüz.

    Curl ile yapabilirsiniz GETve isteyebilirsiniz POST, tek yapmanız gereken parametreleri burada tanımlandığı gibidir: HTTP işlerini otomatikleştirmek için curl kullanma

Tehlike hatırlatıcısı:

Dikkatli olun, herhangi bir yorumlanır ve yürütülürse, kutunuzun sahibi olur ve kredi kartı bilgileriniz üçüncü taraflara satılır ve bir Alabama tek kişilik döşeme şirketinden gizemli bir 900 $ ücret alırsınız. yurtdışı kredi kartı sahtekarlığı suç halka için ön.


2
Burada bahsettiğiniz 'tehlikeyi' destekleyen bir bağlantı sağlayabilir misiniz?
floatingLomas

1
@floatingLomas Eric'in açıklamaya çalıştığı şey, kullanıcı tarafından sağlanan tüm içeriklerde bulunan bir sorundur: Kimseye güvenemezsiniz. Kullanıcı tarafından sağlanan içerikte olduğu gibi, uygulamanıza kötü amaçlı kod enjekte etmek için basit bir MITM kullanarak cURL'den yararlanmak mümkündür. Tabii ki bu sadece Eric'in doğru bir şekilde ifade ettiği gibi "yorumlanır ve uygulanırsa" bir sorundur . Değerlendirmeyi kötülükten araştırın ve çok sayıda olası güvenlik riski bulacaksınız (örn. Stackoverflow.com/questions/951373/when-is-eval-evil-in-php )
Fabio Poloni

7
@floatingLomas ... Ayrıca, Eric'in Alabama'dan tek kişilik döşeme şirketleri hakkında 900 dolar ücretlendiren paranoyası var gibi görünüyor.
Fabio Poloni

İframe dışında bir alternatif var mı?
Jennifer Michelle

1
Eğer size döşeme satmak için gerçekten dışarıdalarsa paranoya değil.
56

24

cURL, bir HTML yanıtı almak için kodunuzdan bir URL'ye erişebileceğiniz bir yöntemdir. PHP dilinden cURL komut satırı için kullanılır.

<?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;
?> 

Adım 1: düğmesini kullanarak bir kıvrılma oturumu başlatın curl_init().

Adım 2: için seçeneği ayarlayın CURLOPT_URL. Bu değer, isteği gönderdiğimiz URL'dir. curlParametresini kullanarak bir arama terimi ekleyin q=. İçin seçeneği ayarlayın CURLOPT_RETURNTRANSFER. True, curl'a dizeyi yazdırmak yerine döndürmesini söyler. Seçeneğini ayarlamak için CURLOPT_HEADERfalse, curl öğesine dönüş değerindeki üstbilgiyi yoksaymasını söyler.

Adım 3: düğmesini kullanarak kıvırma oturumunu yürütün curl_exec().

4. Adım: Oluşturduğumuz kıvırma oturumunu kapatın.

Adım 5: Dönüş dizesini çıktılayın.

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;
}

Bu, kimlik doğrulama için de kullanılır. Kimlik doğrulama için kullanıcı adını ve şifreyi de ayarlayabiliriz.

Daha fazla işlevsellik için kullanım kılavuzuna veya aşağıdaki eğiticiye bakın:

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


16

İlk olarak curl, libcurl ve PHP / cURL kavramlarını anlayalım.

  1. curl : URL sözdizimini kullanarak dosya almak veya göndermek için kullanılan bir komut satırı aracı.

  2. libcurl : Daniel Stenberg tarafından oluşturulan ve birçok farklı protokol türüne sahip birçok farklı sunucu türüne bağlanmanıza ve iletişim kurmanıza olanak tanıyan bir kütüphane. libcurl şu anda http, https, ftp, gopher, telnet, dict, file ve ldap protokollerini desteklemektedir. libcurl ayrıca HTTPS sertifikalarını, HTTP POST, HTTP PUT, FTP yüklemeyi (PHP'nin ftp uzantısıyla da yapılabilir), HTTP form tabanlı yüklemeyi, proxy'leri, çerezleri ve kullanıcı + şifre kimlik doğrulamasını destekler.

  3. PHP / cURL : PHP programlarının libcurl kullanmasını sağlayan PHP modülü.

Bu nasıl kullanılır:

step1 : curl_init () öğesini kullanarak bir curl oturumu başlatın.

2. adım : CURLOPT_URL seçeneğini belirleyin. Bu değer, isteği gönderdiğimiz URL'dir. "Q =" parametresini kullanarak "curl" arama terimi ekleyin. CURLOPT_RETURNTRANSFER seçeneğini ayarlayın, true, curl'a dizeyi yazdırmak yerine döndürmesini söyleyecektir. CURLOPT_HEADER için seçenek belirlendiğinde false, curl öğesine dönüş değerindeki üstbilgiyi yoksaymasını söyler.

step3 : curl_exec () öğesini kullanarak curl oturumunu yürütün.

Adım 4 : Oluşturduğumuz kıvırma oturumunu kapatın.

step5 : Dönüş dizesini çıktılar .

DEMO yap :

İki PHP dosyası oluşturmanız ve bunları web sunucunuzun PHP dosyalarını sunabileceği bir klasöre yerleştirmeniz gerekir. Benim durumumda basitlik için / var / www / 'a koydum.

1. helloservice.php ve 2. demo.php

helloservice.php çok basittir ve aslında aldığı tüm verileri tekrarlar:

<?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 sayfasında, sonucu görebilirsiniz:

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

Merhaba, lütfen sayfa 1'den bahseder misiniz? Using-curl.php
Kaveh

@Kaveh: üzgünüm, ikinci sayfayı unuttum. Cevap güncellendi. Şimdi kontrol edin.
Anand Pandey

12

PHP'nin cURL uzantısı, PHP betiğinizden çeşitli web kaynaklarını kullanmanıza izin vermek için tasarlanmıştır.



7

cURL

  • cURL, bir HTML yanıtı almak için kodunuzdan bir URL'ye erişebileceğiniz bir yöntemdir.
  • PHP dilinden cURL komut satırı için kullanılır.
  • cURL, PHP'de HTTP istekleri yapmanızı sağlayan bir kütüphanedir.

PHP, Daniel Stenberg tarafından oluşturulan ve birçok farklı türde protokole sahip birçok farklı sunucu tipine bağlanmanıza ve iletişim kurmanıza izin veren libcurl'u destekler. libcurl şu anda http, https, ftp, gopher, telnet, dict, file ve ldap protokollerini desteklemektedir. libcurl ayrıca HTTPS sertifikalarını, HTTP POST, HTTP PUT, FTP yüklemeyi (PHP'nin ftp uzantısıyla da yapılabilir), HTTP form tabanlı yüklemeyi, proxy'leri, çerezleri ve kullanıcı + şifre kimlik doğrulamasını destekler.

PHP'yi cURL desteğiyle derledikten sonra cURL işlevlerini kullanmaya başlayabilirsiniz. CURL işlevlerinin arkasındaki temel fikir, curl_init () öğesini kullanarak bir cURL oturumu başlatmanız, ardından curl_setopt () ile aktarım için tüm seçeneklerinizi ayarlamanız ve ardından curl_exec () ile oturumu yürütebilirsiniz. curl_close () yöntemini kullanarak oturumunuzu tamamlayın.

Basit kod

// 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);
}

Daha fazla bilgi için lütfen -


1

Curl, öncelikle Linux / Unix komut satırı aracı için yazılan normal curl komutunun ve kitaplığının davranışlarını devralan PHP'nin bir uzantısı değil

Curl nedir? cURL, Müşteri URL'si anlamına gelir. CURL herhangi bir URL'ye veri göndermek için kullanılır. Kıvrımın tam olarak ne olduğu hakkında daha fazla bilgi için CURL Web sitesini ziyaret edebilirsiniz.

PHP'de cURL Artık, HTTP veya FTP gibi farklı protokoller yoluyla erişilebilir herhangi bir URL'ye veri göndermek için aynı kavram PHP'de tanıtıldı. Daha fazla ayrıntı için PHP Curl Eğitimi'ne başvurabilirsiniz.


1

Php kıvırma işlevi (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 curl sınıfı (GET, POST, YÜKLEME DOSYALARI, OTURUMLAR, POST JSON GÖNDER, GÜÇ KAYNAKLI 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;
            } 
        }
    }
?>

Misal:

<?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 dosyası: 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());
?>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.