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?

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.


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()));

7

Anda dapat menggunakan kode berikut.

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

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();

0

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

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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.