Geçerli sayfanın tam URL'sini nasıl alabilirim?


32

Açık olan sayfanın tam URL’sini almam gerekiyor. Aşağıdaki kodu kullanıyorum, ancak döndürüyor http://localhost/mysite/page_name.

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

Kodumun tamamlanması yeterli değil; URL ile iletilen değerleri almak istiyorum http://localhost/mysite/page_name/value1=value&value2=value.

Bunu nasıl yapabilirim?

Yanıtlar:


32

Request_uri () kullanarak denediniz mi?

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

Hile yapmalı. Kendim denemedim ve biraz kapalı olabilirim, ama denemenizi öneririm. JavaScript’ten window.location.hrefdeğişkeni kullanabilirsiniz .


hileci URL'yi almak için $ _SERVER ['REQUEST_URI'] kullandım, ancak url'yi yazdırdığımda: sitename / pagename? field_empf_salaryfrom_tid = Hepsi & field_emp_date_value [değer] [yıl] = & field_emp_date_value [değer] [ay] / pagename
abd

2
@ abd Muhtemelen aradığınız$_SERVER['QUERY_STRING']
Clive

URL'den gelen her değeri bir değişkene koyabilir miyim? $ S (field_empf_salaryfrom_tid = All) değerine gibi
abd

isset($_SERVER["HTTPS"]) ? 'https' : 'http';
Cevabına

request_uri()404 sayfada bile çalışıyor, bu gerçekten iyi bir şey.
leymannx

24

Drupal API'sını kullanarak geçerli sayfa için mutlak URL’yi nasıl alacağınız:

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

Fazladan (q olmayan) querystring parametrelerine de ihtiyacınız varsa, şunları kullanabilirsiniz:

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

7

Aşağıdaki kodu kullanabilirsiniz.

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


0

Bunu yapmanın en iyi yolunun url () API'sini bu şekilde kullanmak olduğunu düşünüyorum.

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

Soru, yolun bilindiği bir sayfa değil, genel bir sayfa istiyor.
kiamlaluno

Tamam, yerini alabilir your/drupal/path¡ile current_path()@ david-thomas önce yazdığı gibi.
Roberto Peruzzo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.