A quick self-reminder of how to make an HTTP PUT request with PHP. The example below creates an Elasticsearch index with a specific mapping.
$body = array(
  'mappings' => array(
      'properties' => array(
            'make'  => array('type' => 'keyword'),
            'model' => array('type' => 'keyword'),
            'year'  => array('type' => 'integer'),
            'color' => array('type' => 'string')
      )
  )
);
$body = $json_encode($body)
$ch = curl_init('http://localhost:9200/car');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($body))
);
$result = curl_exec($ch);
More examples of making HTTP Requests using PHP can be found here.