¿Cómo obtengo la URL completa de la página actual?


32

Necesito obtener la URL completa de la página abierta actualmente. Yo uso el siguiente código, pero vuelve http://localhost/mysite/page_name.

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

No es suficiente que mi código se complete; Quiero obtener los valores que se pasan con la URL como http://localhost/mysite/page_name/value1=value&value2=value.

¿Cómo puedo hacer eso?

Respuestas:


32

¿Has intentado usar request_uri () ?

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

Debería hacer el truco. No lo he probado yo mismo, y puedo estar un poco fuera, pero te sugiero que lo pruebes. Desde JavaScript, puede usar la window.location.hrefvariable.


gran truco. Utilicé $ _SERVER ['REQUEST_URI'] para obtener la url, pero cuando imprimo la url: sitename / pagename? field_empf_salaryfrom_tid = All & field_emp_date_value [value] [year] = & field_emp_date_value [value] [month] = ¿Cómo puedo eliminar sitename? / pagename
abd

2
@abd Probablemente estés buscando$_SERVER['QUERY_STRING']
Clive

¿Puedo poner todos los valores de la url en una variable? Como el valor de (field_empf_salaryfrom_tid = All) en $ s
abd

Sugiero agregar protocolo a la respuesta conisset($_SERVER["HTTPS"]) ? 'https' : 'http';
augusto

request_uri()incluso funciona en 404 páginas, eso es algo realmente bueno.
leymannx

24

Aquí se explica cómo obtener la URL absoluta para la página actual, utilizando la API de Drupal:

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

Si necesita también los parámetros de cadena de consulta adicionales (no q), puede usar:

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

7

Puedes usar el siguiente código.

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

3

Pruebe la variable $ base_url , proporciona la URL de instalación de Drupal sin "/" y current_path () devuelve la ruta de la página actual que se está viendo.

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

0

Creo que la mejor manera de hacerlo es usar url () API como esta

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

La pregunta es pedir una página genérica, no una para la cual se conoce la ruta.
kiamlaluno

Ok, puedes reemplazar your/drupal/path¡con current_path(), como @ david-thomas escribió antes.
Roberto Peruzzo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.