我一直在努力通过参数调用PHP(在提交时)调用外部URL。我看了不同的选项(curl
,file_get_contents
等),但似乎没有任何工作。
这是最终网址的样子:
http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=temp&memory_mb=1024&num_cpus=1ð0_ip=172.XX.XX.XXXð1_ip=192.XX.XX.XX
使用参数它看起来像这样:
http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=$login&memory_mb=$memory&num_cpus=$cpuð0_ip=$ip_172ð1_ip=$ip_192";
答案 0 :(得分:1)
您没有转义创建网址时使用的变量。如果将变量放在字符串中,则需要告诉变量是什么以及字符串是什么。
例如,您可以在varibales周围使用; = / p>
$url = "http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user={$login}&memory_mb={$memory}&num_cpus={$cpu}ð0_ip={$ip_172}ð1_ip={$ip_192}";
或者从字符串中排除它们:
$url = "http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=" . $login . "&memory_mb=" . $memory . "&num_cpus=" . $cpu . "ð0_ip=" . $ip_172 . "ð1_ip=" . $ip_192;
答案 1 :(得分:0)
您必须在字符串周围使用正确的引号字符"
而不是'
,或者您可以使用.
可能的解决方案是:
$url = 'http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user='.$login.'&memory_mb='.$memory.'&num_cpus='.$cpu.'ð0_ip='.$ip_172.'ð1_ip='.$ip_192;
答案 2 :(得分:0)
将您的网址构建为字符串,然后使用file_get_contents()
$login = "userName";
$memory = "memoryValue";
$cpu = "cpuValue";
$ip = "127_0_100_";
$url = "http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=" . $login . "&memory_mb=" . $memory . "&num_cpus=" . $cpu . "ð0_ip=" . $ip . "_172ð1_ip=" . $ip . "_192";
$content = file_get_contents($url);
答案 3 :(得分:-1)
使用所有定义参数作为字符串构建您的网址,然后使用file_get_contents()或curl()。
$url = "http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=".$login."&memory_mb=".$memory."&num_cpus=".$cpu."ð0_ip=".$ip_172."ð1_ip=".$ip_192;
的file_get_contents($ URL);
$request_headers[] = 'Content-Type:application/json';
if (!function_exists('curl_init')){
die('cURL is not installed. Install and try again.');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);