Як отримати повну 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: ім'я сайту / ім’я сторінки? / pagename
абд

2
@abd Ви, напевно, шукаєте$_SERVER['QUERY_STRING']
Clive

Чи можу я помістити кожне значення з URL у змінну? Як і значення (field_empf_salaryfrom_tid = Усі) у $ s
abd

Пропоную додати протокол до відповіді зisset($_SERVER["HTTPS"]) ? 'https' : 'http';
серпня

request_uri()навіть працює на 404 сторінках, це дійсно гарна річ.
leymannx

24

Ось як отримати абсолютну URL-адресу для поточної сторінки за допомогою API Drupal:

$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 , надає URL-адресу установки Drupal без "/", а current_path () повертає шлях перегляду поточної сторінки.

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

0

Я думаю, що найкращий спосіб зробити це за допомогою API URL-адреси ()

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

Питання задає загальну сторінку, а не ту, для якої відомий шлях.
kiamlaluno

Добре, ви можете замінити your/drupal/path¡з current_path(), а @ Давид-томас писав раніше.
Роберто Перуццо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.