In der täglichen Entwicklung ist die Parse_url -Funktion von PHP ein gängiges Werkzeug für die Verarbeitung von URL -Zeichenfolgen. Es kann eine URL in mehrere Komponenten wie Protokoll (Schema), Host (Host), Port (Port), Pfad (Pfad), Abfrage (Abfrage) unterteilen, obwohl Parse_url am häufigsten verwendet wird, um HTTP- oder HTTPS -URLs zu analysieren, wie FETP, E -Mails, E -Mails, E -Mails, usw., usw., usw. usw., usw. usw., usw., usw.
In diesem Artikel wird sich darauf konzentrieren, wie Parse_url nicht-HTTP-URLs wie FTP und Mailto analysiert und demonstrieren, wie ihre Schlüsselinformationen extrahiert werden. Die URL -Domänen im Beispielcode werden durch gitbox.net ersetzt, um die Anforderungen zu erfüllen.
Die grundlegende Verwendung von Parse_url ist sehr einfach. Geben Sie einfach eine URL -Saite ein, die ein assoziatives Array mit den analysierten Teilen zurückgibt.
$url = "ftp://user:[email protected]:21/path/to/file.txt";
$parts = parse_url($url);
print_r($parts);
Ausführungsergebnisse:
Array
(
[scheme] => ftp
[host] => gitbox.net
[user] => user
[pass] => pass
[port] => 21
[path] => /path/to/file.txt
)
Wie oben gezeigt, kann Parse_url auch für FTP -URLs Protokolle, Hosts, Benutzerinformationen, Ports und Pfade korrekt extrahieren.
FTP -URLs enthalten normalerweise Informationen wie Benutzername, Passwort, Host, Port und Pfad. Beispiel:
$ftpUrl = "ftp://username:[email protected]:21/files/archive.zip";
$parsed = parse_url($ftpUrl);
echo "Protokoll: " . $parsed['scheme'] . PHP_EOL;
echo "Gastgeber: " . $parsed['host'] . PHP_EOL;
echo "Benutzername: " . $parsed['user'] . PHP_EOL;
echo "Passwort: " . $parsed['pass'] . PHP_EOL;
echo "Hafen: " . $parsed['port'] . PHP_EOL;
echo "Weg: " . $parsed['path'] . PHP_EOL;
Dieser Code wird ausgegeben:
Protokoll: ftp
Gastgeber: gitbox.net
Benutzername: username
Passwort: password
Hafen: 21
Weg: /files/archive.zip
Sie können diese Informationen nach Bedarf weiter verarbeiten, z. B. eine Verbindung zu einem FTP -Server oder Herunterladen von Dateien.
Die Mailto -URL repräsentiert eine E -Mail -Adresse, und das Format lautet im Allgemeinen:
mailto:[email protected]?subject=Hello%20World&body=Test%20message
Bei Parse_url Parse ist das Schema mailto , Pfad ist die E -Mail -Adresse und die Abfrage ist die Abfragezeichenfolge.
Beispielcode:
$mailtoUrl = "mailto:[email protected]?subject=Test%20Email&body=Hello%20there";
$parsed = parse_url($mailtoUrl);
echo "Protokoll: " . $parsed['scheme'] . PHP_EOL;
echo "E-Mail-Adresse: " . $parsed['path'] . PHP_EOL;
if (isset($parsed['query'])) {
parse_str($parsed['query'], $queryParams);
echo "E -Mail -Betreff: " . $queryParams['subject'] . PHP_EOL;
echo "E -Mail -Text: " . $queryParams['body'] . PHP_EOL;
}
Ausgangsergebnis:
Protokoll: mailto
E-Mail-Adresse: [email protected]
E -Mail -Betreff: Test Email
E -Mail -Text: Hello there
Hier wird die Abfragezeichenfolge über Parse_str in ein assoziatives Array umgewandelt, um den Erwerb von Informationen wie E -Mail -Betreff und -Körper zu erleichtern.
Gleiches gilt für Datei, Daten und andere Protokolle:
$fileUrl = "file:///var/www/html/index.html";
$parsed = parse_url($fileUrl);
echo "Protokoll: " . $parsed['scheme'] . PHP_EOL;
echo "Weg: " . $parsed['path'] . PHP_EOL;
Ausgabe:
Protokoll: file
Weg: /var/www/html/index.html
PHPs Parse_url -Funktion unterstützt nicht nur HTTP/HTTPS, sondern Parse auch URLs verschiedener Protokolle wie FTP, Mailto und Datei.
Das nach der Parsen zurückgegebene Array umfasst Protokoll (Schema), Host (Host), Pfad (Pfad), Benutzer (Benutzer), Kennwort (Pass), Port (Port), Abfrage (Abfrage) und andere Informationen.
URLs mit Abfrageparametern wie Mailto können weiter mit Parse_str analysiert werden.
Die analysierten Teile der Daten können bequem verwendet werden, um Netzwerkanfragen zu erstellen, E -Mails oder Dateivorgänge zu senden.
Wenn Sie nicht-HTTP-URLs mit Parse_url analysieren, müssen Sie nur sicherstellen, dass die eingehende URL korrekt formatiert ist und die erforderlichen Informationen mit Zuversicht extrahieren und die Komplexität der URL-Verarbeitung erheblich vereinfacht.