将额外变量设置为卷曲连接字符串


setting extra variables to Curl connection string

我正在使用php/ccurl连接到外部api。它工作得很好,但现在我的连接字符串只引用表单中的一个变量

如何使它引用多个?

这就是现在的样子

$curl_connection =curl_init('https://api.ssllabs.com/api/v2/analyze?host='.$_REQUEST['host']);

打电话时,上面的内容如下:https://api.ssllabs.com/api/v2/analyze?host=www.yourdomain.com

我的表单已经更新,包含了更多的输入值,我想将这些值作为curl连接的一部分进行引用,并且需要如下所示:https://api.ssllabs.com/api/v2/analyze?host=www.yourdomain.com&s=69.54.183.66&ignoreMismatch=打开

每个引用由&象征

在我的html表单上,输入名称如下:

  • 主机
  • s
  • ignore不匹配还有其他的。。但以上只是一个样本

我希望这足够清楚,让你知道我想做什么。

以下是我的jquery/Ajax的一部分

var hostName = $("input#host").val();
var ignoreMismatch = $("#ignoreMismatch").val();
var fromCache = $("#fromCache").val();
dataString = "host=" + hostName + "&fromCache=" + fromCache + "&ignoreMismatch=" + ignoreMismatch;
enter code here
$.ajax({
    type: "GET",
    url: "api2.php",
    data: dataString,
    dataType: "json",

我看得出来这部分正在工作。从我的网络控制台中,我可以看到URL已经构建并发布到api2.php文件中。

例如https://172.21.121.37/labs/api2.php?host=ocsp.verisign.com&fromCache=打开&ignoreMismatch=打开

这是我的api2.php文件,它目前只设置为接收host=string。

<?php
header( "Content-Type: application/json" );
//create cURL connection
$curl_connection =curl_init('https://api.ssllabs.com/api/v2/analyze?host='.$_REQUEST['host']);
///set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
//perform our request
$result = curl_exec($curl_connection);
echo $result;
//close the connection
curl_close($curl_connection);
?>

顺便说一句,这是有效的代码,但我只是想给你们更多的上下文,因为我尝试了一些建议,但它们都不起作用。如果有人可以帮助更新我的api2.php文件,我会测试更新。

这应该有助于

foreach($_GET as $name => $value) {
    $encoded .= urlencode($name).'='.urlencode($value).'&';
}
$encoded = substr($encoded, 0, strlen($encoded)-1);
$ch = curl_init("https://api.ssllabs.com/api/v2/analyze?" . $encoded);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch);       
    curl_close($ch);
    echo $output;