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

时间:2015-04-07 03:39:04

标签: php html curl

我正在使用php / curl建立与外部api的连接。它工作正常,但现在我的连接字符串只引用表单中的一个变量。

如何让它不止一个?

这就是现在的样子

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

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

我的表单已更新并包含更多输入值,我想将其作为curl连接的一部分引用,并且需要如下所示: ?https://api.ssllabs.com/api/v2/analyze主机= www.yourdomain.com &安培;的 S = 69.54.183.66 &安培;的 ignoreMismatch =上

每个参考文献都由&符号

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

  • 宿主
  • 取值
  • ignoreMismatch 还有其他...但以上是一个样本

我希望你能清楚知道我想要做什么。

这是我的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",

我可以看到这部分正在发挥作用。从我的Web控制台,我可以看到URL已构建并发布到api2.php文件。

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

这是我的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文件,我将测试更新。

1 个答案:

答案 0 :(得分:0)

这应该可以帮到你

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;