的getURL
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();直接从上面的链接,为什么我有这个额外的成分?
答案 0 :(得分:1)
%0A%3Cbr%3E是<br>
的编码版本,因此我怀疑您在原始数据中有换行符,即使您没有看到它。在使用之前尝试为它做一个trim()。
如果您使用PHP的urlencode到http://www.xxx.com/retro-briefcase-messenger-bag-3380
,您将无法获得此类额外项目,因此您必须将其包含在原始数据中。我认为你有突破性的线路突破,然后是urlencode。
我能想到的唯一其他可能性就是curl api在那里增加了换行符。您可以使用硬编码的测试网址进行验证。