tags:

views:

519

answers:

2

I never see how is PUT/DELETE request sent,

how to do it in PHP?

I know how to send a GET/POST request with curl:

$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
curl_setopt($ch, CURLOPT_COOKIEFILE,$cookieFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,   CURLOPT_SSL_VERIFYPEER,   FALSE);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);

But how do do PUT/DELETE request?

+2  A: 

Check out these two articles on doing REST with PHP

For DELETE use curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
For PUT use curl_setopt($ch, CURLOPT_PUT, true);

Gordon
So I get a downvote for suggesting to read articles that contain all info to fully solve the OPs question? Nice.
Gordon
so seem.. you have my +1, maybe next time you cold post a short review of the article ;)
DaNieL
@Gordon,the review is good
+1  A: 

Generally speaking, if you want to send some "non-GET" request, you'll often work with curl.


And you'll use the curl_setopt function to configure the request you're sending ; amongst the large amount of possible options, to change the request method, you'll be interested by at least those options (quoting) :

  • CURLOPT_CUSTOMREQUEST : A custom request method to use instead of "GET" or "HEAD" when doing a HTTP request. This is useful for doing "DELETE" or other, more obscure HTTP requests.
  • CURLOPT_HTTPGET : TRUE to reset the HTTP request method to GET.
  • CURLOPT_POST : TRUE to do a regular HTTP POST.
  • CURLOPT_PUT : TRUE to HTTP PUT a file. The file to PUT must be set with CURLOPT_INFILE and CURLOPT_INFILESIZE.


Of course, curl_setopt is not the only function you'll use ; see the documentation page of curl_exec for an example of how to send a request with curl.

(Yes, that example is pretty simple, and sends a GET request -- but you should be able to build from there ;-) )

Pascal MARTIN
`CURLOPT_POST` is used to send GET/DELETE request,what about PUT/DELETE?
for PUT, you have `CURLOPT_PUT`, and for DELETE, it seems you'll have to use `CURLOPT_CUSTOMREQUEST`
Pascal MARTIN
Correct. That is what it says in the second article I've linked as well.
Gordon