Wie erhalte ich die vollständige URL der aktuellen Seite?


32

Ich muss die vollständige URL der aktuell geöffneten Seite abrufen. Ich benutze den folgenden Code, aber es wird zurückgegeben http://localhost/mysite/page_name.

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

Es reicht nicht aus, meinen Code zu vervollständigen. Ich möchte die Werte erhalten, die mit der URL als übergeben werden http://localhost/mysite/page_name/value1=value&value2=value.

Wie kann ich das machen?

Antworten:


32

Haben Sie versucht, request_uri () zu verwenden ?

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

Es sollte den Trick machen. Ich habe es nicht selbst ausprobiert und bin vielleicht ein bisschen abwesend, aber ich schlage vor, dass Sie es versuchen. In JavaScript können Sie die window.location.hrefVariable verwenden.


Toller Trick Ich habe $ _SERVER ['REQUEST_URI'] verwendet, um die URL abzurufen, aber wenn ich die URL drucke: Site-Name / Seitenname? / Seitenname
abd

2
@ abd Sie suchen wahrscheinlich$_SERVER['QUERY_STRING']
Clive

Kann ich jeden Wert aus der URL in eine Variable einfügen? Wie der Wert von (field_empf_salaryfrom_tid = All) in $ s
abd

Ich schlage vor, die Antwort mit Protokoll hinzuzufügenisset($_SERVER["HTTPS"]) ? 'https' : 'http';
August

request_uri()funktioniert sogar auf 404 seiten, das ist eine wirklich gute sache.
Leymannx

24

So erhalten Sie die absolute URL für die aktuelle Seite mithilfe der Drupal-API:

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

Wenn Sie auch die zusätzlichen (nicht-q) Querystring-Parameter benötigen, können Sie Folgendes verwenden:

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

7

Sie können den folgenden Code verwenden.

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

3

Probieren Sie die Variable $ base_url aus , geben Sie die Drupal-Installations-URL ohne "/" an und current_path () gibt den Pfad der aktuell angezeigten Seite zurück.

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

0

Ich denke, der beste Weg, dies zu tun, ist die Verwendung von url () API wie folgt

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

Die Frage ist, ob es sich um eine generische Seite handelt, für die der Pfad nicht bekannt ist.
kiamlaluno

Ok, du kannst ersetzen your/drupal/path¡durch current_path(), wie @ david-thomas vorher geschrieben hat.
Roberto Peruzzo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.