开发者

How to create a short url for sharing on social media

I'm trying to write some code which shares a page on Facebook and twitter. The problem I'm facing is that the page I'm trying to share has a big query string like:

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

But it seems that Facebook and Twitter don't like that big query string.

I also tried using tiny url with following method in which I passed the URL to a PHP function to get the tiny URL:

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

I get the correct value of **a**. After that I pass this value to a PHP file:

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

In that PHP file I got the following value:

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

All the valu开发者_开发技巧es after 3 is deleted.

Thanks


When POSTing to your ShortLink.php file, you should make sure to URL encode the value of a beforehand. Otherwise you're calling ShortLink.php?value=http://domain.com/see.php?c=3&a=123&v=1, i.e., sending:

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

What you want is ShortLink.php?value=http%3A%2F%2Fdomain.com%2Fsee.php%3Fc%3D3%26a%3D123%26v%3D1, thus sending:

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

This can be achieved via encodeURIComponent():

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

See also How do I pass a URL with multiple parameters into a URL? and How to encode a URL in Javascript?.


Why don't u just use an url shortener API for that, like Google url shortener. That way, you can leave your code the way it is, but for site's like Facebook and Twitter, it is nicely short.


Try this:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜