bit.ly php api - 在 '&' 之后删除查询字符串参数象征?

发布于 2024-10-21 09:28:44 字数 1275 浏览 0 评论 0原文

我有一个 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);
?>

I've got a Flash app that includes a twitter share for a customized mini application.

I'm achieving this very simply using flashvars passed in via a php querystring so your custom colour and message are passed to the mini-app.

The problem of course is url length for twitter so i'm looking to use the bit.ly api for php to shorten the dynamic url and pass that hashed url back to flash.

I've written a function to do this which works fine however it is chopping off the second querystring parameter after the first '&' symbol?

So for example, the following function running the url 'http://s46264.gridserver.com/apps/soundgirl/fbwall.php?colour=red&message=twittertest'

Gets shortened to http://bit.ly/i4kfj0 which, when parsed becomes http://s46264.gridserver.com/apps/soundgirl/fbwall.php?colour=red

It's chopping off the second querystring parameter. Anyone know of a way I can stop this from happening?

Thanks.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吻安 2024-10-28 09:28:44

也许可以尝试:

在调用 bitly_shorten() 之前不使用 urldecode()

$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");

Maybe try:

No urldecode() before calling bitly_shorten():

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

Add urlencode() on the URL into your bitly_shorten() function:

$response = file_get_contents("http://api.bit.ly/v3/shorten?login=$username&apiKey=$apikey&longUrl=".urlencode($url)."&format=json");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文