我的页面上需要一些链接才能在Facebook,Google Plus,LinkedIn和Twitter上分享。 我的链接看起来像这样:http://www.mydomain.com/subdomain?key1=val1&key2=val2&key3=val3
在所有情况下,共享网址几乎都是这样的:http://www.mydomain.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.mydomain.com/subdomain?key1=val1&key2=val2&key3=val3" title="Share this on Linkedin" target="_new" class="lin"></a>
$requestedUrl
是从我的PHP发送的,并且在Facebook,gplus,linkedin和twitter上共享仍然很常见。
答案 0 :(得分:0)
快速浏览您的完整网址...
<a href="http://www.linkedin.com/shareArticle?mini=true&url=http://www.example.com/subdomain?key1=val1&key2=val2&key3=val3" title="Share this on Linkedin" target="_new" class="lin"></a>
因此,您 DID 逃脱了&
! 但是! 。您使用了HTML转义。您需要的是URL转义。它们非常非常不同。
&
变成&
,带有HTML转义符。但是&
变成具有URL编码的%26
。因此,您的代码应该是...
<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>
例如,我想共享以下网址:http://www.revoltlib.com/?id=17
。其中也包含?
!这是共享URL的结果...
https://www.linkedin.com/sharing/share-offsite/?url=http%3A%2F%2Fwww.revoltlib.com%2F%3Fid%3D17
为我工作:
无论您是在定义escape:'url'
还是从中获取database.echo
,它似乎都是在进行完全不正确的转义。