Bagaimana cara mendapatkan URL lengkap dari halaman saat ini?

32

Saya perlu mendapatkan URL lengkap dari halaman yang sedang dibuka. Saya menggunakan kode berikut, tetapi kembali http://localhost/mysite/page_name.

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

Tidak cukup untuk menyelesaikan kode saya; Saya ingin mendapatkan nilai yang diteruskan dengan URL sebagai http://localhost/mysite/page_name/value1=value&value2=value.

Bagaimana saya bisa melakukan itu?

abd
sumber

Jawaban:

32

Sudahkah Anda mencoba menggunakan request_uri () ?

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

Seharusnya melakukan trik. Saya belum mencobanya sendiri, dan saya mungkin tidak aktif, tetapi saya sarankan Anda mencobanya. Dari JavaScript, Anda bisa menggunakan window.location.hrefvariabel.

optimusprime619
sumber
Trik hebat saya menggunakan $ _SERVER ['REQUEST_URI'] untuk mendapatkan url tetapi saat saya mencetak url: sitename / pagename? field_empf_salaryfrom_tid = Semua & field_emp_date_value [nilai] [tahun] = & field_emp_date_value [nilai] [bulan] = Bagaimana saya bisa menghapus siten / pagename
abd
2
@abd Anda mungkin mencari$_SERVER['QUERY_STRING']
Clive
Bisakah saya Menempatkan setiap nilai dari url dalam variabel? Menyukai nilai (field_empf_salaryfrom_tid = Semua) dalam $ s
abd
Saya menyarankan untuk menambahkan protokol untuk jawabannya denganisset($_SERVER["HTTPS"]) ? 'https' : 'http';
augusto
request_uri()bahkan bekerja di 404 halaman, itu hal yang sangat bagus.
leymannx
24

Berikut cara mendapatkan URL absolut untuk halaman saat ini, menggunakan Drupal API:

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

Jika Anda memerlukan parameter querystring tambahan (non-q) juga, Anda dapat menggunakan:

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

Anda dapat menggunakan kode berikut.

global $base_root;
$current_url = $base_root . request_uri();
echo $current_url;
kumar
sumber
3

Coba variabel $ base_url , berikan URL instalasi Drupal tanpa "/" dan current_path () ia mengembalikan jalur halaman yang sedang dilihat.

global $base_url;
$current_path = $base_url . '/' . current_path();
Yogesh
sumber
0

Saya pikir cara terbaik untuk melakukannya adalah dengan menggunakan url () API seperti ini

url('your/drupal/path', array('absolute' => TRUE));
Roberto Peruzzo
sumber
Pertanyaannya adalah meminta halaman generik, bukan yang diketahui jalurnya.
kiamlaluno
Oke, Anda bisa menggantinya your/drupal/path¡dengan current_path(), seperti yang ditulis oleh @ david-thomas sebelumnya.
Roberto Peruzzo