Как URL-адрес с переменными get может быть значением переменной get? - PullRequest
1 голос
/ 23 ноября 2011

Я хочу использовать API веб-сайта. Это работает просто. Я указываю URL и получаю информацию, которая мне нужна. В указанном URL-адресе я указываю URL-адрес веб-сайта, информацию о котором я хочу узнать. Например:

www.websiteapi.org?url=http://www.google.com&format=extended

Я не понимаю, как API должен работать в тех случаях, когда URL (который я хочу использовать в качестве аргумента) содержит несколько переменных get, разделенных &. Другими словами, как API узнает, что последовательность символов, следующих за &, является частью входного URL, а не указанием новой переменной, которая должна быть передана в API?

Что является стандартным способом решения этой ситуации?

ДОБАВЛЕНО

Вот пример работы API:

http://www.reddit.com/api/info.json?url=http://neatorama.cachefly.net/images/2007-08/iq-range-occupations.jpg&count=1

Ответы [ 3 ]

4 голосов
/ 23 ноября 2011

UrlEncode ()

или даже лучше,

$data = array('url' => 'http://neatorama.cachefly.net/images/2007-08/iq-range-occupations.jpg&count=1');
// or (depends on what url the count variable belongs to):
$data = array(
 'url'   => 'http://neatorama.cachefly.net/images/2007-08/iq-range-occupations.jpg',
 'count' => 1,
);
$url = "http://www.reddit.com/api/info.json?".http_build_query($data);
4 голосов
/ 23 ноября 2011

Вы знаете о кодировке URL ?То есть замена специальных символов на % и их шестнадцатеричное значение ASCII.

Примените это к своему URL-адресу, и все готово.В частности, замените все вхождения & на %26.

. На сервере приложение разбивает входящие переменные на литерал &, а затем преобразует %26 обратно в &.Вот как вы получаете знак & (и другие специальные символы, такие как #) через HTTP-запрос.

2 голосов
/ 23 ноября 2011

Количество и URL - это два параметра.

Я бы сделал это, заменив любые & (и другие символы, используемые в URL, такие как = и ?), используя urlencode()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...