0

我需要在我的页面上共享一些链接,以便在 Facebook、Google Plus、LinkedIn 和 Twitter 上共享。我的链接看起来像这样:http ://www.example.com/subdomain?key1=val1&key2=val2&key3=val3

几乎在所有情况下,共享 URL 都如下所示:http ://www.example.com/subdomain?key1=val1

第一个 & 之后的所有键和值都被删除。示例 URL 生成代码

<a href="http://www.linkedin.com/shareArticle?mini=true&url=~$requestedUrl|escape:'url'`" title="Share this on Linkedin" target="_new" class="lin"></a>

这导致以下情况:

<a href="http://www.linkedin.com/shareArticle?mini=true&url=http://www.example.com/subdomain?key1=val1&amp;key2=val2&amp;key3=val3" title="Share this on Linkedin" target="_new" class="lin"></a>

$requestedUrl是从我的 PHP 发送的,并且将在 facebook、gplus、linkedin 和 twitter 之间共享。

4

1 回答 1

0

快速浏览您的完整网址...

<a href="http://www.linkedin.com/shareArticle?mini=true&url=http://www.example.com/subdomain?key1=val1&amp;key2=val2&amp;key3=val3" title="Share this on Linkedin" target="_new" class="lin"></a>

所以,你确实逃脱了&但! 您使用了 HTML 转义。您需要的是 URL 转义。他们非常非常不同。

&变成&amp;HTML 转义。但是&变成%26了 URL 编码。所以,你的代码应该是......

<a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fwww.example.com%2Fsubdomain%3Fkey1%3Dval1%26key2%3Dval2%26key3%3Dval3" title="Share this on Linkedin" target="_new" class="lin"></a>

所以,例如,我想分享这个 url: http://www.revoltlib.com/?id=17。它也有一个?!这是分享网址结果...

https://www.linkedin.com/sharing/share-offsite/?url=http%3A%2F%2Fwww.revoltlib.com%2F%3Fid%3D17

为我工作:

无论您在哪里定义或从哪里获得escape:'url',它似乎都在进行完全不正确的转义类型。

于 2020-06-01T17:53:01.230 回答