@artem78

Массив в GET-запросе — с индексами или без?

Сегодня работал с 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 создавать строку без индексов?
  • Вопрос задан
  • 1345 просмотров
Пригласить эксперта
Ответы на вопрос 1
anton_lazarev
@anton_lazarev
$query = http_build_query($params);
$query = preg_replace('/%5B[0-9]+%5D/simU', '%5B%5D', $query);
$url = $url . '?' . $query;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы