使用PHP中的参数调用外部URL

时间:2018-06-07 07:17:29

标签: php url curl

我一直在努力通过参数调用PHP(在提交时)调用外部URL。我看了不同的选项(curlfile_get_contents等),但似乎没有任何工作。

这是最终网址的样子:

http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=temp&memory_mb=1024&num_cpus=1&eth0_ip=172.XX.XX.XXX&eth1_ip=192.XX.XX.XX

使用参数它看起来像这样:

http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=$login&memory_mb=$memory&num_cpus=$cpu&eth0_ip=$ip_172&eth1_ip=$ip_192";

4 个答案:

答案 0 :(得分:1)

您没有转义创建网址时使用的变量。如果将变量放在字符串中,则需要告诉变量是什么以及字符串是什么。

例如,您可以在varibales周围使用; = / p>

$url = "http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user={$login}&memory_mb={$memory}&num_cpus={$cpu}&eth0_ip={$ip_172}&eth1_ip={$ip_192}";

或者从字符串中排除它们:

$url = "http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=" . $login . "&memory_mb=" . $memory . "&num_cpus=" . $cpu . "&eth0_ip=" . $ip_172 . "&eth1_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.'&eth0_ip='.$ip_172.'&eth1_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 . "&eth0_ip=" . $ip . "_172&eth1_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."&eth0_ip=".$ip_172."&eth1_ip=".$ip_192;
  1. file_get_contents()

    的file_get_contents($ URL);

  2. curl()

            $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);