Php Curl ajoutant Params
Im un débutant im essayant d'obtenir un script pour déclencher un autre script avec Curl en PHP mais il dosent semblent être d'envoyer les paramètres.
Est-il une autre fonction pour ajouter des paramètres?
<?php
$time = time();
$message = "hello world";
$urlmessage = urlencode( $message );
$ch = curl_init("http://mysite.php?message=$urlmessage&time=$time");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>
Quelqu'un pourrait-il me diriger dans la bonne direction??
Veuillez lire la documentation de PHP: us3.php.net/manual/en/book.curl.php. Ce problème est expliqué dans une juste quantité de détails.
Ne pas le faire;
Mieux encore, utiliser sprintf(). Comme ceci: sprintf('mysite.com/myscript.php?message=%s&temps=%d', $urlmessage, $temps); (EDIT:....n'arrive pas à comprendre comment ajouter des morceaux de code dans les commentaires....:S)
Ne pas le faire;
$ch = curl_init("http://mysite.php?message=$urlmessage&time=$time");
ce Faire; $ch = curl_init('http://mysite.php?message=' . $urlmessage . '&time=' . $time);
Il est beaucoup plus facile à lire, et vous serez un octet/8 plus sûr. Que faire si vous avez eu une variable $url
, il pourrait theoreticaly être utilisé à la place de $urlmessage
.Mieux encore, utiliser sprintf(). Comme ceci: sprintf('mysite.com/myscript.php?message=%s&temps=%d', $urlmessage, $temps); (EDIT:....n'arrive pas à comprendre comment ajouter des morceaux de code dans les commentaires....:S)
OriginalL'auteur Christopher | 2011-06-16
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin curl_setopt() avec le CURLOPT_POSTFIELDS param.
Que vais POSTER la params de la page cible.
curl_setopt($ch, CURLOPT_POSTFIELDS, 'foo=1&bar=2&baz=3');
PS: vérifiez aussi http_build_query() ce qui est pratique lors de l'envoi de nombreuses variables.
Modifier les guillemets simples guillemets doubles, qui permettra de résoudre le problème de la littéraux. Aussi, mettre le POST des valeurs de chaîne de caractères dans une variable, au lieu de le construire à l'intérieur de la curl_setopt appel de fonction. C'est parce que c'est généralement une bonne idée d'envoyer le POST de la longueur de la boucle aussi, et puis vous n'avez pas à créer la requête de deux fois.
Est-il de toute façon pour le script à exécuter, mais alors pour rebondir en arrière à l'original?
comment utiliser ces valeurs dans l'déclenché fichier php sur le serveur?
à l'aide de CURLOPT_POSTFIELDS crée une requête http POST à POST params de sorte que vous pouvez y accéder sur la fin de réception de l' $_POST mondiale en php
OriginalL'auteur ChrisR
vous devez définir
CURLOPT_POST
commetrue
etCURLOPT_POSTFIELDS
=> paramètresune suggestion,set'
CURLOPT_RETURNTRANSFER
", comme vrai pour retourner le transfert comme une chaîne de caractères de la valeur de retour decurl_exec($ch)
au lieu de la sortie directementCURLOPT_POSTFIELDS
à un tableau de paramètres que de construire une chaîne de requête version.OriginalL'auteur The Mask
Accepté la réponse est bonne pour le POST, mais si l'OP voulait spécifiquement pour les OBTENIR? Certains des Api REST spécifier la méthode http et souvent c'est pas bon Affichage lorsque vous devez Obtenir.
Voici un fragment de code qui n'OBTENEZ avec certains params:
Ce sera la cause de votre demande à être faite avec
GET
àhttp://example.com/endpoint?foo=bar
. C'est le défaut de méthode http, sauf si vous mettez autre chose commePOST
aveccurl_setopt($ch, CURLOPT_POST, true)
- il ne faut pas le faire si vous en avez besoin pour OBTENIR.Si vous avez besoin d'utiliser l'une des autres méthodes http (SUPPRIMER ou de les METTRE par exemple), alors l'utilisation
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method)
. Cela fonctionne aussi pour les GET et POST.OriginalL'auteur Coder