Wie kann ich Parameter aus einer URL-Zeichenfolge erhalten?

Lesezeit: 5 Minuten

Wie kann ich Parameter aus einer URL Zeichenfolge erhalten
Asim Zaidi

Ich habe ein HTML-Formularfeld $_POST["url"]mit einigen URL-Strings als Wert.

Beispielwerte sind:

https://example.com/test/[email protected]
https://example.com/test/1234?basic=2&[email protected]
https://example.com/test/[email protected]
https://example.com/test/[email protected]&testin=123
https://example.com/test/the-page-here/1234?someurl=key&[email protected]

usw.

Wie bekomme ich nur die email Parameter aus diesen URLs/Werten?

Bitte beachten Sie, dass ich diese Zeichenfolgen nicht aus der Adressleiste des Browsers erhalte.

  • Ich bin etwas verwirrt, bitte erläutern Sie die Frage …

    – Dexter Huinda

    14. Juli 2012 um 3:30 Uhr


  • Wollen Sie sagen/bitten, dass die URLs als Zeichenfolgen behandelt werden?

    – hjpotter92

    14. Juli 2012 um 3:39 Uhr

  • Wenn Sie den E-Mail-Teil von Zeichenfolgen “abgleichen” möchten, wie in Ihren Beispielen, verwenden Sie reguläre Ausdrücke. Könnte so einfach sein /(email=\w\@\w\.\w)/ oder fortgeschrittenere Matching-Techniken. Ich gebe Ihnen nur die Idee. Sehen preg_match Funktion: php.net/manual/en/function.preg-match.php

    – Dexter Huinda

    14. Juli 2012 um 3:43 Uhr

  • mögliches Duplikat von Wie extrahiere ich Abfrageparameter aus einer URL-Zeichenfolge in PHP?

    – Immer_ein_Lerner

    8. Juli 2015 um 5:11 Uhr

  • Mögliches Duplikat der URL-Abfragezeichenfolge abrufen

    – jww

    21. Oktober 2018 um 6:08 Uhr


Wie kann ich Parameter aus einer URL Zeichenfolge erhalten
Ruel

Du kannst den … benutzen parse_url() und parse_str() dafür.

$parts = parse_url($url);
parse_str($parts['query'], $query);
echo $query['email'];

Wenn Sie die bekommen möchten $url dynamisch mit PHP, werfen Sie einen Blick auf diese Frage:

Holen Sie sich die vollständige URL in PHP

  • Es funktioniert, aber ich erhalte Fehler in Protokollen wie diesem: PHP-Hinweis: Undefinierter Index: Abfrage

    – Srinivas08

    11. September 2018 um 13:52 Uhr

  • Außerdem wird ein Fragezeichen angezeigt, wenn es sich um das letzte Zeichen in der Abfrage handelt. Ich habe das verwendet: if (strpos($urlParts['path'], '?')) { $urlParts['path'] = substr($urlParts['path'], 0, strpos($urlParts['path'], '?')); } um es am Ende zu entfernen.

    – Höchster Schöpfer

    29. April 2021 um 14:09 Uhr

1646950447 788 Wie kann ich Parameter aus einer URL Zeichenfolge erhalten
hjpotter92

Alle Parameter danach ? kann über abgerufen werden $_GET Reihe. Damit,

echo $_GET['email'];

extrahiert die E-Mails aus URLs.

  • Dies ist nicht die Antwort auf die Frage, aber dies ist die Antwort, nach der ich gesucht habe, als ich die Googles nach der Frage gefragt habe, also +1 für die richtige Antwort von Google.

    – BillyNair

    17. Februar 2016 um 18:44 Uhr

  • Dies ist möglicherweise nicht die Antwort auf die Frage, aber der richtige und einfachste Weg, um URL-Parameter abzurufen – wenn sie richtig eingestellt sind: https://[email protected] $email = $_GET['email']; $email === '[email protected]';

    – CheddarMonkey

    23. Juli 2019 um 22:56 Uhr


Verwenden Sie die parse_url() und parse_str() Methoden. parse_url() zerlegt einen URL-String in ein assoziatives Array seiner Teile. Da Sie nur einen einzelnen Teil der URL möchten, können Sie eine Verknüpfung verwenden, um einen Zeichenfolgenwert nur mit dem gewünschten Teil zurückzugeben. Nächste, parse_str() erstellt Variablen für jeden der Parameter in der Abfragezeichenfolge. Ich mag es nicht, den aktuellen Kontext zu verschmutzen, also fügt ein zweiter Parameter alle Variablen in ein assoziatives Array ein.

$url = "https://mysite.com/test/[email protected]&testin=123";
$query_str = parse_url($url, PHP_URL_QUERY);
parse_str($query_str, $query_params);
print_r($query_params);

//Output: Array ( [email] => [email protected] [testin] => 123 ) 

1646950447 351 Wie kann ich Parameter aus einer URL Zeichenfolge erhalten
Mohammed

Wie in einer anderen Antwort erwähnt, ist die beste Lösung die Verwendung parse_url().

Sie müssen eine Kombination aus verwenden parse_url() und parse_str().

Die parse_url() analysiert die URL und gibt ihre Komponenten zurück, mit denen Sie die Abfragezeichenfolge abrufen können query Schlüssel. Dann sollten Sie verwenden parse_str() die die Abfragezeichenfolge analysiert und Werte in eine Variable zurückgibt.

$url = "https://example.com/test/1234?basic=2&[email protected]";
parse_str(parse_url($url)['query'], $params);
echo $params['email']; // [email protected]

Sie können diese Arbeit auch mit erledigen regulärer Ausdruck: preg_match()

Sie können verwenden preg_match() um einen bestimmten Wert der Abfragezeichenfolge von einer URL zu erhalten.

preg_match("/&?email=([^&]+)/", $url, $matches);
echo $matches[1]; // [email protected]

preg_replace()

Auch Sie können verwenden preg_replace() um diese Arbeit zu erledigen eine Linie!

$email = preg_replace("/^https?:\/\/.*\?.*email=([^&]+).*$/", "$1", $url);
// [email protected]

1646950447 125 Wie kann ich Parameter aus einer URL Zeichenfolge erhalten
Paul Denisewitsch

Verwenden $_GET['email'] für Parameter in URL. Verwenden $_POST['email'] für gepostete Daten zum Skript. Oder verwenden _$REQUEST für beide. Auch, wie erwähnt, können Sie verwenden parse_url() Funktion, die alle Teile der URL zurückgibt. Verwenden Sie einen Teil namens “Abfrage” – dort finden Sie Ihren E-Mail-Parameter. Mehr Info: http://php.net/manual/en/function.parse-url.php

  • OP sagte, er bekomme keine URLs von address bar. Diese URLs sind nur Zeichenfolgen IN der Code.

    – DavChana

    14. Juli 2012 um 6:12 Uhr

1646950448 983 Wie kann ich Parameter aus einer URL Zeichenfolge erhalten
Peter Mortensen

Sie können den folgenden Code verwenden, um die E-Mail-Adresse danach zu erhalten ? in der URL:

<?php
if (isset($_GET['email'])) {
    echo $_GET['email'];
}

  • OP sagte, er bekomme keine URLs von address bar. Diese URLs sind nur Zeichenfolgen IN der Code.

    – DavChana

    14. Juli 2012 um 6:12 Uhr

1646950448 983 Wie kann ich Parameter aus einer URL Zeichenfolge erhalten
Peter Mortensen

Ich habe eine Funktion aus Ruels Antwort erstellt.

Sie können dies verwenden:

function get_valueFromStringUrl($url , $parameter_name)
{
    $parts = parse_url($url);
    if(isset($parts['query']))
    {
        parse_str($parts['query'], $query);
        if(isset($query[$parameter_name]))
        {
            return $query[$parameter_name];
        }
        else
        {
            return null;
        }
    }
    else
    {
        return null;
    }
}

Beispiel:

$url = "https://example.com/test/the-page-here/1234?someurl=key&[email protected]";
echo get_valueFromStringUrl($url , "email");

Danke an @Ruel.

989130cookie-checkWie kann ich Parameter aus einer URL-Zeichenfolge erhalten?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy