PHP:将元素ID作为哈希添加到Facebook共享链接 - php

在this page上,我有一堆显示为精美框的mp3文件。

每个框都有一个Facebook分享按钮。我想将每个框ID((mp3jWrap_0, mp3jWrap_1等)作为哈希添加到其Facebook共享链接,以便每次从Facebook访问共享项目时,URL都包含该项目的哈希。

为此,我编写了代码:

<?php
  $actual_link = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    $actual_link = trim($actual_link, '/');
    $actual_link = $actual_link . '#mp3jWrap_' . $id;
   echo '<li class="fb_share"><a href="http://www.facebook.com/sharer.php?u="' . $actual_link . '" title="Share on Facebook" target="_blank"><i class="fa fa-facebook"></i></a></li>';
?>

问题:单击共享按钮时,哈希后面的字符串(包括哈希)不在URL中。为什么?

参考方案

您需要将$actual_link传递给urlencode() PHP函数。
因此,您的代码应如下所示:

echo '<li class="fb_share"><a href="http://www.facebook.com/sharer.php?u="' . urlencode($actual_link) . '" title="Share on Facebook" target="_blank"><i class="fa fa-facebook"></i></a></li>';

之所以发生这种情况,是因为浏览器会认为哈希是用于共享页面(fb上的那个)而不是共享链接上的。

没有urlencode,共享URL将为:

http://www.facebook.com/sharer.php?u=http://example.com/path/#mp3jWrap_id

编码如下:

http://www.facebook.com/sharer.php?u=http%3A%2F%2Fexample.com%2Fpath%2F%23mp3jWrap_id

最终,这将被解释为正常链接。

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…

PHP Count数组元素 - php

嗨,有人可以解释为什么这会返回“数组由0个元素组成”。 :$arr = array(1,3,5); $count = count($arr); if ($count = 0) { echo "An array is empty."; } else { echo "An array has $count elements.…

PHP:从函数返回值并直接回显它? - php

这可能是一个愚蠢的问题,但是……的PHPfunction get_info() { $something = "test"; return $something; } html<div class="test"><?php echo get_info(); ?></div> 有没有办…