Comment puis-je accéder PHP API REST de METTRE les données sur le côté serveur?

-- Question --

Je commence tout juste avec le RESTE de l'API et suis assez confus.

C'est ce que mon PHP cRUL côté client ressemble à un PUT.

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

Maintenant, quand je regarde le serveur my $_SERVER['REQUEST_METHOD'] montre, mais ma question est comment puis-je obtenir les $données que j'ai envoyé avec CURLOPT_POSTFIELDS.

Tout ce que je dois faire est d'obtenir les $données envoyé avec une demande dans la ligne suivante. Comme

$value = $data['curl_data'];

J'ai trop vu l'encombrement sur ce sujet qu'il me donne un mal de tête. Il semble si facile sur le php côté client, mais personne n'a les réponses qui travaillent pour le php côté serveur.

Merci pour toute aide!

-- Réponse (après aide de devoirs à la maison) --

Je suis nouveau donc je ne peux pas répondre à ma propre question jusqu'au bout de 8 heures... c'est bizarre 🙂

Bon, après avoir travaillé avec des gens formidables ici, je dois dire que nous avons couru dans la réponse. Je suis moi-même coups de pied pour qu'il soit si facile, en même temps, il a été source de confusion.

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

Le premier changement (ci-dessus), j'ai dû ajouter http_build_query() autour de $données. Ce qui a pris de mes données à partir d'un tableau à une url de chaîne conviviale.

Ensuite, j'ai dû ajouter.

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

Maintenant, je peux faire des choses comme $['data'].

La réponse PaulPRO donné ci-dessus est le travail d'obtenir les données de la même façon file_get_contents() fait avec moins de lignes. Nous avons obtenu coincé à essayer de comprendre comment analyser les données qui a été où mon manque de http_build_query() que j'avais vu sur un autre site à coups de pied dans le jeu.

Donc, C'est comment tout cela fonctionne.

  1. Données sont placées dans un tableau normal.
  2. http_build_query() convertit un beau presque comme string.
  3. file_get_contents() transporte du client vers le serveur.
  4. parse_str (), puis tourne dans un tableau.

Je vois beaucoup de messages sur l'utilisation de la METTRE à envoyer des fichiers. Je peux voir comment cela pourrait fonctionner, mais de ce que j'ai lu tout le RESTE du processus est que METTRE à jour les données post est de créer une base de données. Peut-être que je me trompe. Ai-je raté quelque chose?

Peut-être que ces liens va vous aider à mieux comprendre certaines bizarreries de REPOS.

OriginalL'auteur Shylor | 2011-07-24