// set post fields$post=['username'=>'user1','password'=>'passuser1','gender'=>1,];$ch=curl_init('http://www.example.com');curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_POSTFIELDS,$post);// execute!$response=curl_exec($ch);// close the connection, release resources usedcurl_close($ch);// do anything you want with your responsevar_dump($response);
$url="http://abc/api/xyz.php";//url of 2nd website where data is to be send$postdata=$data$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0)curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_TIMEOUT,60);curl_setopt($ch,CURLOPT_POSTFIELDS,$postdata);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type','application/json'));$result=curl_exec($ch);echo$result;curl_close($ch);
$ch=curl_init();$curlConfig=array(CURLOPT_URL=>"http://www.example.com/yourscript.php",CURLOPT_POST=>true,CURLOPT_RETURNTRANSFER=>true,CURLOPT_POSTFIELDS=>array('field1'=>'some date','field2'=>'some other data',));curl_setopt_array($ch,$curlConfig);$result=curl_exec($ch);curl_close($ch);// result sent by the remote server is in $result
// Initialize Curl $curl=curl_init();curl_setopt($curl,CURLOPT_URL,"https://coinmarketcap.com/");// set live website where data fromcurl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE);// defaultcurl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);// default$content=curl_exec($curl);preg_match_all('!<p color="text3" class="sc-AxhUy bzeXdk coin-item-symbol" font-size="1">(.*?)</p>!',$content,$matches);var_dump($matches);
<?php// create a new cURL resource$ch=curl_init();// set URL and other appropriate optionscurl_setopt($ch,CURLOPT_URL,"http://www.example.com/");curl_setopt($ch,CURLOPT_HEADER,0);// grab URL and pass it to the browsercurl_exec($ch);// close cURL resource, and free up system resourcescurl_close($ch);?>
$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_POST,count($fields));curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);$result=curl_exec($ch);curl_close($ch);//check the resultvar_dump($result);
$ch=curl_init();$curlConfig=array(CURLOPT_URL=>"http://www.example.com/yourscript.php",CURLOPT_POST=>true,CURLOPT_RETURNTRANSFER=>true,CURLOPT_POSTFIELDS=>array('field1'=>'some date','field2'=>'some other data',));curl_setopt_array($ch,$curlConfig);$result=curl_exec($ch);curl_close($ch);
It is important to notice that when using curl to post form data and you use an array for CURLOPT_POSTFIELDS option, the post will be in multipart format
<?php$params=['name'=>'John','surname'=>'Doe','age'=>36)$defaults=array(CURLOPT_URL=>'http://myremoteservice/',CURLOPT_POST=>true,CURLOPT_POSTFIELDS=>$params,);$ch=curl_init();curl_setopt_array($ch,($options+$defaults));?>
This produce the following post header:
--------------------------fd1c4191862e3566
Content-Disposition: form-data; name="name"
Jhon
--------------------------fd1c4191862e3566
Content-Disposition: form-data; name="surnname"
Doe
--------------------------fd1c4191862e3566
Content-Disposition: form-data; name="age"
36
--------------------------fd1c4191862e3566--
Setting CURLOPT_POSTFIELDS as follow produce a standard post header
CURLOPT_POSTFIELDS => http_build_query($params),
Which is:
name=John&surname=Doe&age=36
This caused me 2 days of debug while interacting with a java service which was sensible to this difference, while the equivalent one in php got both format without problem.