0

現在のURLを取得する次のPHP関数があります。

function getCurrentUrl() {
  $isHTTPS = ( isset($_SERVER["HTTPS"] ) && $_SERVER["HTTPS"]  ==  "on" );
  $port = ( isset($_SERVER["SERVER_PORT"] ) && (( !$isHTTPS && $_SERVER["SERVER_PORT"] != "80" ) || ( $isHTTPS && $_SERVER["SERVER_PORT"] != "443" )));
  $port = ($port) ? ':'.$_SERVER["SERVER_PORT"] : '';
  $url = ( $isHTTPS ? 'https://' : 'http://').$_SERVER["SERVER_NAME"].$port.$_SERVER["REQUEST_URI"];
  return $url;
 }

次に、次のコードがあります。

<ul>
  <li id="face"><a href="https://www.facebook.com/sharer.php?u=<?php echo getCurrentUrl(); ?>&t=<?php echo $title; ?>" class="popup" title="Facebook">Share</a></li>
  <li id="tweet"><a href="http://twitter.com/home?status=<?php echo getCurrentUrl(); ?>" class="popup" title="Tweeter">Tweet</a></li>
</ul>

<?php echo getCurrentUrl(); ?>適切な結果でURLをエコーすると、次のようになります。http://mydomain.com/index.php?menu=13&page=7

しかし、現在のURLをFacebookまたはTwitterに共有しようとすると、pageが切断されるため、共有URLは常に次のようになります。http://mydomain.com/index.php?menu=13

この問題にどのように対処できますか?

4

2 に答える 2

0

URLをurlencodeしようとしましたか?

function getCurrentUrl()
{
  $isHTTPS = ( isset($_SERVER["HTTPS"] ) && $_SERVER["HTTPS"]  ==  "on" );
  $port = ( isset($_SERVER["SERVER_PORT"] ) && (( !$isHTTPS && $_SERVER["SERVER_PORT"] != "80" ) || ( $isHTTPS && $_SERVER["SERVER_PORT"] != "443" )));
  $port = ($port) ? ':'.$_SERVER["SERVER_PORT"] : '';
  $url = ( $isHTTPS ? 'https://' : 'http://').$_SERVER["SERVER_NAME"].$port.$_SERVER["REQUEST_URI"];

  return urlencode($url);
}
于 2012-04-20T12:10:54.557 に答える
0

問題は、Facebookの共有ボタンでURLの後に「&t =」があり、&page =が混乱する可能性があるため、URLが間違って途切れる可能性があることだと思います。だから私はあなたがこのようにそれをやろうとしていると言います:

<ul>
 <li id="face"><a href="https://www.facebook.com/sharer.php?t=<?php echo $title; ?>&u=<?php echo getCurrentUrl(); ?>" class="popup" title="Facebook">Share</a></li>
 <li id="tweet"><a href="http://twitter.com/home?status=<?php echo getCurrentUrl(); ?>" class="popup" title="Tweeter">Tweet</a></li>
</ul>

うまくいくはずのツイッターについてはよくわかりません。

于 2012-04-20T12:13:34.573 に答える