bit.ly php api - 在'&'之后切断querystring参数符号?

时间:2011-03-13 14:19:45

标签: php bit.ly

我有一个Flash应用程序,其中包含一个定制的迷你应用程序的推特共享。

我使用通过php查询字符串传入的flashvars非常简单地实现了这一点,因此您的自定义颜色和消息将传递给迷你应用程序。

问题当然是twitter的url长度所以我希望使用bit.ly api for php来缩短动态url并将该哈希的url传回flash。

我已经编写了一个函数来完成这个工作正常但它在第一个'&'之后切断了第二个查询字符串参数符号

例如,运行url的以下函数'http://s46264.gridserver.com/apps/soundgirl/fbwall.php?colour=red&message=twittertest'

缩短为http://bit.ly/i4kfj0,解析后变为http://s46264.gridserver.com/apps/soundgirl/fbwall.php?colour=red

它正在切断第二个查询字符串参数。有人知道我可以阻止这种情况发生吗?

感谢。

<?php

function bitly_shorten($url)
{
$username = "modernenglish";
$apikey = "myapikey";
$response = file_get_contents("http://api.bit.ly/v3/shorten?login=$username&apiKey=$apikey&longUrl=$url&format=json");
$response = json_decode($response);
if ($response->status_code == 200 && $response->status_txt == "OK")
{
return $response->data->url;
} else
{
return null;
}
}
$link = urldecode("http://s46264.gridserver.com/apps/soundgirl/fbwall.php?colour=red&message=twittertest");
echo bitly_shorten($link);
?>

1 个答案:

答案 0 :(得分:2)

也许试试:

在致电urldecode()之前

bitly_shorten()

$link = "http://s46264.gridserver.com/apps/soundgirl/fbwall.php?colour=red&message=twittertest";

在网址上添加urlencode() bitly_shorten()功能:

$response = file_get_contents("http://api.bit.ly/v3/shorten?login=$username&apiKey=$apikey&longUrl=".urlencode($url)."&format=json");