2013-10-13 52 views
1

的getURLURL編碼,這是不應該額外的數據在那裏

http://www.example.com/retro-briefcase-messenger-bag-3380 

編碼呼應

https://api-ssl.bitly.com/v3/shorten?access_token=xxx&longUrl=http%3A%2F%2Fwww.xxx.com%2Fretro-briefcase-messenger-bag-3380%0A%3Cbr%3E 

捲曲代碼

$curl = curl_init(); 
// Set some options - we are passing in a useragent too here 

$encodedurl = urlencode($getUrl); 

echo "CURL START"; 
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_URL => 'https://api-ssl.bitly.com/v3/shorten?access_token=xxx&longUrl='.$encodedurl, 
    CURLOPT_USERAGENT => 'Mozilla/4.0' 
)); 

如果您知道還有似乎是一個addtional信息背後3380這是%0A%3Cbr%3E,我相信代表
一個標籤。

我做了一個urlEncode();直接從上面的鏈接,爲什麼我有這個額外的成分?

+0

By'urlEncode'你的意思是PHP ['urlencode'](http://www.php.net/manual/en/function.urlencode.php)? –

+0

是的,我用了 – CodeGuru

+0

所以請給我們看看產生這樣結果的代碼。 –

回答

1

%0A%3Cbr%3E是<br>的編碼版本,所以我懷疑在原始數據中有一個換行符,即使您沒有看到它。在使用它之前嘗試使用trim()。

如果你使用PHP的urlencode到http://www.xxx.com/retro-briefcase-messenger-bag-3380你不會得到這樣的額外項目,所以你必須在原始數據。我認爲你有通過htmlentities進行換行,然後urlencode。

只有其他的可能性我能想到的是curl api在那裏增加了一個換行符。你可以用硬編碼的測試網址來驗證。

+1

雖然正確(OP也注意到了這一點),但這並沒有回答這個問題。 –

+0

@StefanoSanfilippo umm ... OP指出「我認爲它代表一個標籤」,聽起來不像是一樣的? – eis

+0

但是你的回答不是嗎?我不會低調,因爲它沒有錯,但它不是一個答案。 –

相關問題