Comment puis-je obtenir l'URL complète de la page actuelle?


32

J'ai besoin d'obtenir l'URL complète de la page actuellement ouverte. J'utilise le code suivant, mais il revient http://localhost/mysite/page_name.

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

Il ne suffit pas que mon code se termine; Je veux obtenir les valeurs transmises avec l'URL en tant que http://localhost/mysite/page_name/value1=value&value2=value.

Comment puis je faire ça?

Réponses:


32

Avez-vous essayé d'utiliser request_uri () ?

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

Cela devrait faire l'affaire. Je ne l'ai pas essayé moi-même, et je suis peut-être un peu en retrait, mais je vous suggère d'essayer. Depuis JavaScript, vous pouvez utiliser la window.location.hrefvariable.


super astuce j'ai utilisé $ _SERVER ['REQUEST_URI'] pour obtenir l'url mais quand j'imprime l'url: sitename / pagename? field_empf_salaryfrom_tid = All & field_emp_date_value [value] [year] = & field_emp_date_value [value] [month] = Comment puis-je supprimer le sitemap / nom de page
abd

2
@abd Vous cherchez probablement$_SERVER['QUERY_STRING']
Clive

Puis-je mettre toutes les valeurs de l'URL dans une variable? Comme la valeur de (field_empf_salaryfrom_tid = All) dans $ s
abd

Je suggère d' ajouter le protocole à la réponse avecisset($_SERVER["HTTPS"]) ? 'https' : 'http';
augusto

request_uri()fonctionne même sur 404 pages, c'est vraiment une bonne chose.
leymannx

24

Voici comment obtenir l'URL absolue de la page actuelle, en utilisant l'API Drupal:

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

Si vous avez également besoin des paramètres de chaîne de requête supplémentaires (non q), vous pouvez utiliser:

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

7

Vous pouvez utiliser le code suivant.

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

3

Essayez la variable $ base_url , fournit l'URL d'installation de Drupal sans "/" et current_path () elle retourne le chemin de la page en cours de visualisation.

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

0

Je pense que la meilleure façon de le faire est d'utiliser l'API url () comme celle-ci

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

La question demande une page générique, pas une pour laquelle le chemin est connu.
kiamlaluno

Vous pouvez remplacer your/drupal/path¡par current_path(), comme l'a écrit @ david-thomas auparavant.
Roberto Peruzzo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.