PHPのCurlで別のスクリプトをトリガーするスクリプトを取得しようとしている初心者ですが、パラメーターを送信していないようです。
パラメータを追加するための別の関数はありますか?
<?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);
?>
誰かが私を正しい方向に向けることができますか?
curl_setopt() とCURLOPT_POSTFIELDSパラメーターが必要です。それはPOSTターゲットページに与えられたパラメータです。
curl_setopt($ch, CURLOPT_POSTFIELDS, 'foo=1&bar=2&baz=3');
PS: http_build_query() もチェックしてください。これは多くの変数を送信するときに便利です。
受け入れられた回答はPOSTには適していますが、OPが特にGETしたい場合はどうでしょうか。一部のREST APIはhttpメソッドを指定しますが、GETする必要があるときにPOSTするのは適切ではないことがよくあります。
いくつかのパラメータでGETを実行するコードのフラグメントを次に示します。
_$endpoint = 'http://example.com/endpoint';
$params = array('foo' => 'bar');
$url = $endpoint . '?' . http_build_query($params);
curl_setopt($ch, CURLOPT_URL, $url);
_
これにより、リクエストはGET
から_http://example.com/endpoint?foo=bar
_で行われます。これは、curl_setopt($ch, CURLOPT_POST, true)
でPOST
のような他の方法に設定しない限り、デフォルトのhttpメソッドです。したがって、特にGETが必要な場合は、これを行わないでください。
他のhttpメソッド(たとえば、DELETEまたはPUT)のいずれかを使用する必要がある場合は、curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method)
を使用します。これは、GETおよびPOSTでも機能します。
_CURLOPT_POST
_をtrue
および_CURLOPT_POSTFIELDS
_ =>パラメーターとして設定する必要があります
_ curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
_
提案、 '_CURLOPT_RETURNTRANSFER
_'をtrueに設定して、転送を直接出力するのではなく、curl_exec($ch)
の戻り値の文字列として返します。