So konvertieren Sie ein Array in PHP in eine URL

PHPz
Freigeben: 2023-04-18 14:42:52
Original
727 Leute haben es durchsucht

Mit der kontinuierlichen Weiterentwicklung des Internets verlassen wir uns immer mehr auf das Netzwerk, um Daten zu übertragen und auszutauschen. Egal, ob wir im Internet surfen, E-Commerce betreiben oder Online-Zahlungen tätigen: Wir alle müssen URLs verwenden, um notwendige Informationen zu übertragen und abzurufen.

In PHP müssen wir häufig Arrays in URLs konvertieren, um sie über URL-Parameter weiterzugeben und zu verarbeiten. In diesem Artikel erklären wir, wie man ein PHP-Array in eine URL umwandelt und stellen praktischen Beispielcode als Referenz bereit.

Konvertierungsmethode

In PHP können wir die Funktion http_build_query() verwenden, um das Array in das URL-Format zu konvertieren. Die Funktion http_build_query() konvertiert das Array in URL-Kodierung und generiert eine Zeichenfolge, die alle Parameter-Schlüssel-Wert-Paare enthält. Das Folgende ist die Syntax der Funktion http_build_query():

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
Nach dem Login kopieren

Diese Funktion hat vier Parameter:

  • query_data: ein erforderlicher Parameter. Die in eine URL zu konvertierenden Daten können ein assoziatives Array sein.
  • numeric_prefix: Optionaler Parameter. Wenn dieser Parameter auf true gesetzt ist, wird dem Schlüsselnamen automatisch ein Präfix hinzugefügt. Standardmäßig ist das Präfix „parameters[]“.
  • arg_separator: Optionaler Parameter, Trennzeichen zwischen Parametern, Standardwert ist „&“.
  • enc_type: Optionaler Parameter, Kodierungstyp, Standard ist PHP_QUERY_RFC1738. Wenn dieser Parameter auf PHP_QUERY_RFC3986 gesetzt ist, wird der Codierungstyp RFC3986 verwendet.

Beispielcode

Hier ist ein Codebeispiel zum Konvertieren eines Arrays in eine URL:

<?php
$parameters = array(
    &#39;username&#39; => 'myusername',
    'password' => 'mypassword',
    'city' => 'New York',
    'state' => 'NY',
);

$url_parameters = http_build_query($parameters);

$url = 'http://www.example.com/login?' . $url_parameters;

echo $url;
?>
Nach dem Login kopieren

In diesem Beispiel definieren wir ein assoziatives Array $parameters, das einige Schlüssel-Wert-Paare enthält. Anschließend verwenden wir die Funktion http_build_query(), um das Array in einen URL-codierten String umzuwandeln und ihn in der Variablen $url_parameters zu speichern.

Schließlich fügen wir $url_parameters zur URL hinzu, generieren die endgültige URL und verwenden die Echo-Funktion, um sie auf dem Bildschirm auszugeben.

Ausgabeergebnis:

http://www.example.com/login?username=myusername&password=mypassword&city=New+York&state=NY
Nach dem Login kopieren
Nach dem Login kopieren

Dies ist eine der grundlegendsten Methoden zum Konvertieren eines PHP-Arrays in eine URL.

Erweiterte Apps

Jetzt haben wir gesehen, wie man ein PHP-Array in eine URL umwandelt. Als nächstes werden wir einige fortgeschrittenere Verwendungsmöglichkeiten behandeln, damit Sie die Anwendungen besser verstehen.

  1. Präfix

Wir können den zweiten Parameter numeric_prefix verwenden, um dem Parameternamen ein Präfix hinzuzufügen. Im folgenden Beispiel wird den Parameternamen im Array „data[ ]“ vorangestellt.

<?php
$data = array(
    1 => 'foo',
    2 => 'bar',
    3 => 'faz'
);

$query = http_build_query($data, 'data[]');

echo $query;
?>
Nach dem Login kopieren

Ausgabeergebnis:

data%5B%5D=foo&data%5B%5D=bar&data%5B%5D=faz
Nach dem Login kopieren
  1. urlencode()

Wenn Sie mehr Kontrolle über die Parameter in der URL wünschen, können Sie die Funktion urlencode() verwenden, um die Parameterwerte vor dem Generieren der URL zu kodieren. Zum Beispiel:

<?php
$parameters = array(
    &#39;username&#39; => 'myusername',
    'password' => 'mypassword',
    'city' => urlencode('New York'),
    'state' => urlencode('NY'),
);

$url_parameters = http_build_query($parameters);

$url = 'http://www.example.com/login?' . $url_parameters;

echo $url;
?>
Nach dem Login kopieren

In diesem Beispiel verwenden wir die Funktion urlencode(), um „New York“ und „NY“ zu kodieren, um sicherzustellen, dass keine illegalen Zeichen in der URL erscheinen. Die endgültige URL sieht folgendermaßen aus:

http://www.example.com/login?username=myusername&password=mypassword&city=New+York&state=NY
Nach dem Login kopieren
Nach dem Login kopieren
  1. Erweiterte Arrays

Wenn Ihr Array mehrdimensionale Unterarrays enthält, können Sie das gesamte Array mithilfe der Rekursion in eine URL konvertieren. Zum Beispiel:

<?php
$parameters = array(
    &#39;username&#39; => 'myusername',
    'password' => 'mypassword',
    'address' => array(
        'city' => 'New York',
        'state' => 'NY',
        'zip' => '10001'
    )
);

function build_query_string_recursive(array $array, $prefix = null) {

    $query = array();

    foreach($array as $key => $value) {
        $new_key = is_null($prefix) ? $key : sprintf('%s[%s]', $prefix, $key);

        if(is_array($value)) {
            $query[] = build_query_string_recursive($value, $new_key);
        } else {
            $query[] = sprintf('%s=%s', urlencode($new_key), urlencode($value));
        }
    }

    return implode('&', $query);
}

$url_parameters = build_query_string_recursive($parameters);

$url = 'http://www.example.com/login?' . $url_parameters;

echo $url;
?>
Nach dem Login kopieren

In diesem Beispiel verwenden wir die Funktion build_query_string_recursive(), um das gesamte Array in eine URL umzuwandeln. Diese Funktion verwendet Rekursion zur Verarbeitung mehrdimensionaler Arrays und stellt sicher, dass alle Schlüssel-Wert-Paare korrekt in das URL-codierte Format konvertiert werden.

Schließlich fügen wir $url_parameters zur URL hinzu, generieren die endgültige URL und verwenden die Echo-Funktion, um sie auf dem Bildschirm auszugeben.

Ausgabe:

http://www.example.com/login?username=myusername&password=mypassword&address[city]=New+York&address[state]=NY&address[zip]=10001
Nach dem Login kopieren

Fazit

Das Konvertieren von PHP-Arrays in URLs ist ein sehr nützlicher Trick zum Übergeben und Verarbeiten von Daten. In diesem Artikel stellen wir die Funktion http_build_query() mit einigen praktischen Beispielen als Referenz vor.

Ob Sie ein einfaches Array oder ein mehrdimensionales Array in eine URL konvertieren müssen, diese Beispiele können Ihnen dabei helfen, die Aufgabe erfolgreich abzuschließen. Vielen Dank fürs Lesen und ich hoffe, dieser Artikel war hilfreich!

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein Array in PHP in eine URL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage