ラボ > PHP:通信絡み

PHP・cUrlでPUT/GETじゃなくDELETEメソッドを使う

DELETEメソッドってのもいるらしく、それを使いたい

作成日:2018-03-08, 更新日:2018-03-08

基本

PUT/GET以外のメソッドは「CURLOPT_CUSTOMREQUEST」ってのを使う。
※PUT/GET以外ってのは、DELETE、PUTなど。

$customRequest = 'DELETE';
$postFields = json_encode(array(
                 〇〇〇 => 〇〇〇,
                 〇〇〇 => 〇〇〇,
              ));

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $customRequest);
if ( is_array($postFields) ) {
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postFields));
}
else {
  curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
}

「CURLOPT_CUSTOMREQUEST」を使うときはサーバでそのメソッドがサポートしているか確認必要だそうだ。

公式より

使用しようとしているメソッドをサーバーがサポートしていることを 確かめるまで、これを使用しないでください。

サポートしているメソッドの確認

サーバーに接続して、「OPTIONS / HTTP/1.0」をサーバに送信する。

# telnet example.com 80
OPTIONS / HTTP/1.0 #(入力後に改行を2つ入れる)

  HTTP/1.1 200 OK
  Date: Thu, 8 Mar 2018 11:35:34 GMT
  Server: Apache
  Allow: GET,HEAD,POST,OPTIONS,TRACE
  Content-Length: 0
  Connection: close
  Content-Type: text/html

関連項目

Win・CMDでtelnetを使う