Php curl 添加参数

2022-08-30 17:58:14

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

任何人都可以为我指出正确的方向吗?


答案 1

接受的答案对POST有好处,但是如果OP特别想要GET呢?一些 REST API 指定了 http 方法,通常当你应该使用 GETting 时,它并不是一个好的 POSTing。

下面是一段代码片段,它使用一些参数执行 GET 操作:

$endpoint = 'http://example.com/endpoint';
$params = array('foo' => 'bar');
$url = $endpoint . '?' . http_build_query($params);
curl_setopt($ch, CURLOPT_URL, $url);

这将导致您向 发出请求。这是默认的 http 方法,除非您将其设置为其他类似 with 的方法 - 因此,如果您特别需要 GET,请不要这样做。GEThttp://example.com/endpoint?foo=barPOSTcurl_setopt($ch, CURLOPT_POST, true)

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


答案 2

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

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

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


推荐