CURL ile $ _POST değerleri geçen

4 Cevap php

Nasıl bir sayfaya $_POST değerleri cURL kullanarak geçmek?

4 Cevap

Iyi çalışması gerekir.

$data = array('name' => 'Ross', 'php_master' => true);

// You can POST a file by prefixing with an @ (for <input type="file"> fields)
$data['file'] = '@/home/user/world.jpg';

$handle = curl_init($url);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
curl_exec($handle);

Biz CURLOPT_POST hangi HTTP POST açar, burada iki seçeneğiniz var, ve CURLOPT_POSTFIELDS hangi göndermek için yazılan verilerin bir dizi içerir. Bu POST <form> s veri göndermek için kullanılabilir.


O curl_setopt($handle, CURLOPT_POSTFIELDS, $data); iki formatta $ verileri alır, ve bu post verileri kodlanmış olacak nasıl karar verdiğine dikkat etmek önemlidir.

  1. $data olarak array(): data multipart/form-data olan her sunucu tarafından kabul edilmez olarak gönderilecektir.

    $data = array('name' => 'Ross', 'php_master' => true);
    curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
    
  2. $data url kodlanmış bir dize olarak: Veri gönderilen html formu verileri için varsayılan kodlama olan application/x-www-form-urlencoded olarak gönderilecektir.

    $data = array('name' => 'Ross', 'php_master' => true);
    curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));
    

Ben bu diğerleri zamandan tasarruf yardımcı olacağını umuyoruz.

Bkz:


@pix0r
Heh, need more coffee I think :) Thanks.

Ross has the right idea bir url olağan parametre / değer biçimini ilanı için.

Geçenlerde işte bunu nasıl ben herhangi bir parametre çiftleri olmadan Content-Type "text / xml" gibi bazı XML POST için gerekli bir durumda koştu:

    $xml = '<?xml version="1.0"?><stuff><child>foo</child><child>bar</child></stuff>';
    $httpRequest = curl_init();

    curl_setopt($httpRequest, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($httpRequest, CURLOPT_HTTPHEADER, array("Content-Type:  text/xml"));
    curl_setopt($httpRequest, CURLOPT_POST, 1);
    curl_setopt($httpRequest, CURLOPT_HEADER, 1);

    curl_setopt($httpRequest, CURLOPT_URL, $url);
    curl_setopt($httpRequest, CURLOPT_POSTFIELDS, $xml);

    $returnHeader = curl_exec($httpRequest);

    curl_close($httpRequest);

Benim durumumda, ben mutlaka RETURNTRANSFER veya HEADER ayarlamak gerek olmayabilir HTTP cevap başlığının üzerinden bazı değerleri ayrıştırmak için gerekli.

Bunu yapmak için nasıl bir örnek vardır this page hangi edin.

CURL kullanarak başka basit php örnek:

<?php

$ch = curl_init();                    // initiate curl
$url = "http://www.somesite.com/curl_example.php"; // where you want to post data
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, true);  // tell curl you want to post something
curl_setopt($ch, CURLOPT_POSTFIELDS, "var1=value1&var2=value2&var_n=value_n"); // define what you want to post
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return the output in string format
$output = curl_exec ($ch); // execute

curl_close ($ch); // close curl handle

var_dump($output); // show output

?>

Örnek burada bulunan: http://devzone.co.in/post-data-using-curl-in-php-a-simple-example/