如何创建在社交媒体上分享的简短网址

时间:2011-09-07 08:20:52

标签: php url-shortener

我正在尝试编写一些在Facebook和Twitter上共享页面的代码。 我面临的问题是我正在尝试共享的页面有一个很大的查询字符串,如:

http://domain.com/see.php?c=3&a=123&v=1

但似乎Facebook和Twitter不喜欢那个大查询字符串。

我还尝试使用带有以下方法的小url,我将URL传递给PHP函数以获取微小的URL:

var a = $("#Link").val();

我得到**a**的正确值。之后,我将此值传递给PHP文件:

$.post("ShortLink.php?value="+a

在那个PHP文件中,我得到了以下值:

http://domain.com/see.php?c=3

删除3之后的所有值。

由于

3 个答案:

答案 0 :(得分:2)

POST ShortLink.php文件时,您应确保事先对a的值进行网址编码。否则,您正在呼叫ShortLink.php?value=http://domain.com/see.php?c=3&a=123&v=1,即发送:

value = http://domain.com/see.php?c=3
a = 123
v = 1

你想要的是ShortLink.php?value=http%3A%2F%2Fdomain.com%2Fsee.php%3Fc%3D3%26a%3D123%26v%3D1,因此发送:

value = http://domain.com/see.php?c=3&a=123&v=1

这可以通过encodeURIComponent()

来实现
$.post("ShortLink.php?value=" + encodeURIComponent(a));

另请参阅How do I pass a URL with multiple parameters into a URL?How to encode a URL in Javascript?

答案 1 :(得分:1)

为什么不使用url shortener API,例如Google url shortener。这样,你可以保持你的代码,但对于像Facebook和Twitter这样的网站,它很短。

答案 2 :(得分:1)

试试这个:

$.post("ShortLink.php?value=" + escape(a));