現在のページの完全なURLを取得するにはどうすればよいですか?


32

現在開いているページの完全なURLを取得する必要があります。次のコードを使用しますが、を返しますhttp://localhost/mysite/page_name

$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$link = url($path, array('absolute' => TRUE));

私のコードが完了するだけでは不十分です。としてURLで渡される値を取得したいhttp://localhost/mysite/page_name/value1=value&value2=value

どうやってやるの?

回答:


32

request_uri()を使用してみましたか?

$_SERVER['HTTP_HOST'] . request_uri();

トリックを行う必要があります。私は自分で試していないので、少しおかしいかもしれませんが、試してみることをお勧めします。JavaScriptから、window.location.href変数を使用できます。


素晴らしいトリック私は$ _SERVER ['REQUEST_URI']を使用してURLを取得しましたが、URLを印刷するとき:site_name / pagename?field_empf_salaryfrom_tid = All&field_emp_date_value [value] [year] =&field_emp_date_value [value] [month] = / pagename
abd

2
@abdおそらく探している$_SERVER['QUERY_STRING']
クライブ

URLのすべての値を変数に入れることはできますか?$ s内(field_empf_salaryfrom_tid =すべて)の値のように
ABD

答えにプロトコルを追加することをお勧めしますisset($_SERVER["HTTPS"]) ? 'https' : 'http';
8

request_uri()404ページでも動作します。これは本当に良いことです。
レイマンクス

24

Drupal APIを使用して、現在のページの絶対URLを取得する方法は次のとおりです。

$current_url = url(current_path(), array('absolute' => TRUE));

追加の(非q)クエリ文字列パラメーターも必要な場合は、次を使用できます。

$current_url = url(current_path(), array('absolute' => TRUE, 
                                         'query' => drupal_get_query_parameters()));

7

次のコードを使用できます。

global $base_root;
$current_url = $base_root . request_uri();
echo $current_url;

3

$ base_url変数を試して、 "/"およびcurrent_path()なしでDrupalインストールURLを提供し、表示中の現在のページのパスを返します。

global $base_url;
$current_path = $base_url . '/' . current_path();

0

これを行う最良の方法は、このようなurl()APIを使用することだと思います

url('your/drupal/path', array('absolute' => TRUE));

問題は、パスがわかっているページではなく、一般的なページを要求することです。
キアムルノ

[OK]を、あなたは置き換えることができるyour/drupal/path¡current_path()@デビッド・トーマスは前に書いたように、。
ロベルトペルッツォ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.