2011-11-23 19 views
1

我想使用一個網站的API。它以一種簡單的方式工作。我指定URL並獲取我需要的信息。在我指定的URL中,我給出了一個關於我想知道信息的網站的URL。例如:如何獲取變量的url可以是一個get變量的值?

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

我不明白怎麼API應情況無效的網址(即我想作爲一個參數使用)包含&分隔的多個GET變量。換句話說,API將如何知道&之後的符號序列是否是輸入URL的一部分,而不是指示應該傳遞給API的新變量?

什麼是治療這種情況的標準方法?

ADDED

這裏是API是如何工作的一個例子:

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

+1

該API你想用嗎?如果它支持帶有get參數的url,則必須閱讀API的文檔。網址編碼是否工作? –

+0

我想使用Reddit的API。 – Roman

+0

@KAOSFORGE「網址編碼」是什麼意思? – Roman

回答

4

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

你知道URL encoding?也就是說,用%和它們的ASCII十六進制值替換特殊字符。

將此應用於您的網址並解決。具體來說,用%26替換&的所有發生。

在服務器上,應用程序在字面&拆分進入的變量之後轉換%26&。這是通過HTTP請求獲取&符號(以及其他特殊字符,如#)的方式。

2

計數和URL是兩個參數。

我會被替換任何&(URL中使用和其他字符,如=?)用做urlencode()

相關問題