将2个不同的变量插入一个cURL行

时间:2015-02-21 22:06:23

标签: php html variables curl

我想取一个变量的随机值并将其插入cURL命令。 此外,在添加此随机变量的值之后,cURL应该运行具有此值的函数,并且在函数的末尾,我希望它为第一个添加不同的值,因此函数将完成并且在那里将是一个结果。

$kinds = array(
    "http://fruits.com/select.php?=",
    "http://vegtables.com/select.php?=",
);
$random = array_rand($kinds);

function get_fruits($fruit){    
   //get content
    $ch = curl_init();
    $timeout = 5;  
    curl_setopt($ch,CURLOPT_URL,$kinds[$random].$fruit);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);  
    $content = curl_exec($ch); 
    curl_close($ch);
    return $content;
}

$test = get_fruits('apple');
echo $test;  

$ test提出了一个空值。空白。 正如你所看到的,它需要随机$ kind,然后在函数后面给出$ fruit值。

我认为这是因为该功能的第二行:

curl_setopt($ch,CURLOPT_URL,$kinds[$random].$fruit);  

因为如果我改变了

$kinds[$random].$fruit 

'http://fruits.com/select.php?='
一切都很好。 我的意思是,当我使用下一个方式时:

curl_setopt($ch,CURLOPT_URL,'http://fruits.com/select.php?='.$fruit);  

一切都很完美。

但是我不想定义'http://frutis.com',我想从array_rand函数中给出的url中获取一个随机url。

我不知道该怎么做。

非常感谢。 我已经尝试过以下方法:

curl_setopt($ch,CURLOPT_URL,"$kinds[$random]".$fruit); 
curl_setopt($ch,CURLOPT_URL,$kinds[$random].$fruit); 

curl_setopt($ch,CURLOPT_URL,$kinds[$random]."/select.php?=".$fruit); //(when I defined the $kinds as the url only without the select.php)

1 个答案:

答案 0 :(得分:0)

你的$ types和$ random变量是在get_fruits()函数之外定义的,所以要么在函数内部使用关键字global,要么将它们发送给函数。

function get_fruits($fruit){    
    global $kinds, $random;
    ...
}

function get_fruits($fruit, $kinds, $random){
    ...
}
$test = get_fruits('apple', $kinds, $random);

此外,您可能只想向函数发送1个参数,即url,而不是同时发送数组和索引。