Php Curl添加Params

时间:2011-06-16 06:06:50

标签: php curl params

我是一个新手我试图让一个脚本在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);
?>

有人能指出我正确的方向吗?

4 个答案:

答案 0 :(得分:16)

您需要curl_setopt()以及CURLOPT_POSTFIELDS参数。 那将把给定的参数发布到目标页面。

curl_setopt($ch, CURLOPT_POSTFIELDS, 'foo=1&bar=2&baz=3');

PS:还要检查http_build_query(),这在发送许多变量时很方便。

答案 1 :(得分:5)

您需要将CURLOPT_POST设置为trueCURLOPT_POSTFIELDS =&gt;参数

  curl_setopt($ch, CURLOPT_POST, true); 
   curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);

建议,将“CURLOPT_RETURNTRANSFER”设置为true,将传输作为返回值curl_exec($ch)的字符串返回,而不是直接输出

答案 2 :(得分:4)

可接受的答案对于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);

这将导致您的请求是通过GEThttp://example.com/endpoint?foo=bar发送的。这是默认的http方法,除非您使用POST将其设置为curl_setopt($ch, CURLOPT_POST, true)之类的东西-因此,如果您特别需要GET,请不要这样做。

如果您需要使用其他http方法之一(例如,DELETE或PUT),请使用curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method)。这同样适用于GET和POST。

答案 3 :(得分:0)

这是一个简单的解决方案。

 $mobile_number = $_POST['mobile_number'];
 $sessionid = $_POST['session_id'];
    CURLOPT_URL => 'https://xxyz.jkl.com/v2.0/search?varible_that_you_want_to_pass='.$mobile_number.'&requestId=1616581154955&locale=en-US&sessionId='.$sessionid,