Drupalサイト。現在のページのURLを取得する必要があります。コンテンツタイプが何であるかは関係ありません。どのタイプのノードでもかまいません。
テーマへのパス、ベースURL、またはDrupalのget_destinationを探していません。以下を完全に提供する関数または変数を探しています。
http://example.com/node/number
http://
の有無にかかわらず(可能性が高い)。
drupal_get_destination() には、現在の内部パスを取得するための正しい場所を指す内部コードがあります。そのパスを絶対URLに変換するには、 rl() 関数がトリックを行う必要があります。 'absolute'オプションを渡すと、内部パスだけでなく完全なURLが生成されます。また、現在のパスのパスエイリアスもスワップします。
$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$link = url($path, array('absolute' => TRUE));
これは私が有用であることがわかったものです
global $base_root;
$base_root . request_uri();
クエリ文字列を返し、コアで使用されるものです: page_set_cache()
この方法でもできます:
$current_url = 'http://' .$_SERVER['HTTP_Host'] . $_SERVER['REQUEST_URI'];
それは少し速いです。
以下を試してください:
url($_GET['q'], array('absolute' => true));
このメソッドはすべて古いメソッドです。drupal 7では、非常に簡単に取得できます
current_path()
そして、わずかな違いがある別の関数
request_path()
トークンの使用はとてもきれいです。 Drupal 7.でコアに統合されています。
<?php print token_replace('[current-page:url]'); ?>
以下はより多くのDrupal-ish:
url(current_path(), array('absolute' => true));
For Drupal 8これを行うことができます:
$url = 'YOUR_URL';
$url = \Drupal\Core\Url::fromUserInput('/' . $url, array('absolute' => 'true'))->toString();