Сегодня работал с api биржи Freelancer.com и заметил, что GET запрос не работает правильно, если передать массив с индексами
languages[0]=en&languages[1]=ru
вместо
languages[]=en&languages[]=ru
.
<?php
$url = 'https://www.freelancer.com/api/projects/0.1/projects/active/';
$params = array(
'languages' => array('en', 'ru'),
// ...
);
$url = $url . '?' . http_build_query($params);
echo urldecode($url); // https://www.freelancer.com/api/projects/0.1/projects/active/?languages[0]=en&languages[1]=ru
Возникло два вопроса:
1) Какой способ является более правильным с точки зрения стандартов?
2) Можно ли заставить функцию
http_build_query
создавать строку без индексов?