3

我有一个 Flash 应用程序,其中包含一个自定义迷你应用程序的 Twitter 共享。

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

问题当然是 twitter 的 url 长度,所以我希望使用 php 的 bit.ly api 来缩短动态 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);
?>
4

1 回答 1

2

也许尝试:

没有urldecode()打电话之前bitly_shorten()

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

将 URL添加urlencode()到您的bitly_shorten()函数中:

$response = file_get_contents("http://api.bit.ly/v3/shorten?login=$username&apiKey=$apikey&longUrl=".urlencode($url)."&format=json");
于 2011-03-13T14:34:41.833 回答