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?

abd
quelle

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.

optimusprime619
quelle
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()));
David Thomas
quelle
7

Sie können den folgenden Code verwenden.

global $base_root;
$current_url = $base_root . request_uri();
echo $current_url;
kumar
quelle
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();
Yogesh
quelle
0

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

url('your/drupal/path', array('absolute' => TRUE));
Roberto Peruzzo
quelle
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