¿Cómo accedo a los datos PUT API REST de PHP en el lado del servidor?

- Pregunta -

Acabo de comenzar con la API REST y me estoy confundiendo bastante.

Así se ve mi cliente PHP cRUL para un PUT.

case 'PUT':
    curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
    curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
    break;

Ahora cuando miro el servidor, mi $ _SERVER ['REQUEST_METHOD'] muestra PUT, pero mi pregunta es cómo obtengo los $ datos que envié con CURLOPT_POSTFIELDS.

Todo lo que necesito hacer es enviar los $ datos enviados con una solicitud PUT a la siguiente línea. Me gust

$value = $data['curl_data'];

He visto tanto desorden sobre este tema que me está dando dolor de cabeza. Parece tan fácil en el lado del cliente php, pero nadie tiene respuestas que funcionen para el lado del servidor php.

¡Gracias por cualquier ayuda

- Respuesta (después de ayuda y tarea) -

Soy nuevo, así que no puedo responder mi propia pregunta hasta después de 8 horas ... extraño:)

Está bien, después de trabajar con las grandes personas aquí tengo que decir que nos encontramos con la respuesta. Me estoy pateando por ser tan fácil, al mismo tiempo que era confuso.

curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));

El primer cambio (arriba) Tuve que agregar http_build_query () alrededor de $ data. Esto llevó mis datos de una matriz a una cadena amigable de URL.

A continuación tuve que agregar.

parse_str(file_get_contents('php://input'), $put);

Ahora puedo hacer cosas como $ put ['datos'].

La respuesta que PaulPRO dio anteriormente funciona para obtener los datos de la misma manera que file_get_contents () lo hizo con menos líneas. Nos quedamos atrapados tratando de descubrir cómo analizar los datos, que fue donde entró en juego mi falta de http_build_query () que había visto en otro sitio.

Así es como funciona todo.

Data se pone en una normal a, rray.http_build_query () lo convierte en una bonita cadena casi como GET.file_get_contents () lo transporta desde el cliente al servidor.parse_str () luego lo convierte de nuevo en una matriz.

Estoy viendo muchos mensajes sobre el uso de PUT para enviar archivos. Puedo ver cómo funcionaría esto, pero de lo que leí en todo este proceso REST fue que PUT es actualizar datos como post es crear datos. Quizás estoy equivocado. ¿Me estoy perdiendo de algo

Respuestas a la pregunta(2)

Su respuesta a la pregunta