2013-09-20 3 views
2

Мне нужно отправить эту строку в URL:Использование Curl для создания строки

https://sample.nodeurl.tld/api/getObjects.sjs?object=supporter&  [email protected]&condition=Last_Modified>2010-05-05&limit=5&orderBy=Last_Modified 

вопрос с несколькими условиями. Следующий код работает с одним условием, но не может определить, как построить строку с несколькими условиями.

$query = array(); 
$query ["object"]="supporter"; 
$query ["condition"]="First_Name= $_POST[fname]"; 


curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($query)); 
//return the transfer as a string 
curl_setopt($ch, CURLOPT_POST, 1); 

$output = curl_exec($ch); 
+0

Почему у этого есть два 'condition ='? Не должно быть 'condition [] ='? –

+0

У вас не может быть свой собственный набор = в URL-адресе, потому что это специальный символ. – TravisO

ответ

0

Вы пытаетесь передать этот запрос в POST? Если это так вы можете просто использовать запрос непосредственно

$string = "https://sample.nodeurl.tld/api/getObjects.sjs?object=supporter& [email protected]&condition=Last_Modified>2010-05-05&limit=5&orderBy=Last_Modified"; 
curl_setopt($ch,CURLOPT_POSTFIELDS, $string); 
1

Просто сделайте $query["condition"] в массив.

$query = array(
    'object' => 'supporter', 
    'condition' => array(
     '[email protected]', 
     'Last_Modified>2010-05-05' 
    ) 
); 

Тогда http_build_query построит вам строку запроса, которая выглядит как:

object=supporter&condition[][email protected]&condition[]=Last_Modified>2010-05-05 

Я не знаю о других серверных языках, но в PHP [] после Condtion делает его в массив когда оно опубликовано.

Смежные вопросы