1

获取网址

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'
));

如果您意识到 3380 后面似乎有一个附加信息,即 %0A%3Cbr%3E 我相信它代表
一个标签。

我做了一个 urlEncode(); 直接从上面的链接,为什么我有这个额外的成分?

4

1 回答 1

1

%0A%3Cbr%3E 是 的编码版本<br>,所以我怀疑您在原始数据中有换行符,即使您没有看到它。在使用它之前尝试为它做一个 trim() 。

如果你使用 PHP 的 urlencode,http://www.xxx.com/retro-briefcase-messenger-bag-3380你不会得到这样的额外项目,所以你必须在原始数据中拥有它。我假设你有通过 htmlentities 的换行符,然后是 urlencode。

我能想到的唯一其他可能性是 curl api 在其中添加了换行符。您可以使用硬编码的测试网址验证这一点。

于 2013-10-13T16:58:25.010 回答