2 Stimmen

PHP-URL-Erkennung

Wie können Sie überprüfen, ob der vom Benutzer eingegebene Text eine URL ist?

Angenommen, ich möchte überprüfen, ob der Text eine URL ist, und dann überprüfen, ob der String "youtube.com" darin enthalten ist. Danach möchte ich den Teil des Links erhalten, der für mich von Interesse ist, zwischen den Teilstrings "watch?v=" und etwaigen "&"-Parametern, sofern sie vorhanden sind.

5voto

zombat Punkte 89911

parse_url() ist wahrscheinlich eine gute Wahl hier. Wenn Sie eine schlechte URL erhalten, gibt die Funktion false zurück. Andernfalls zerlegt sie die URL in ihre Bestandteile, die Sie verwenden können.

Beispiel:

$urlTeile = parse_url('http://www.youtube.com/watch?v=MX0D4oZwCsA');
if ($urlTeile == false) echo "Schlechte URL";
else echo "Param-String ist ".$urlTeile['query'];

Ausgabe:

Param-String ist v=MX0D4oZwCsA

Sie könnten den Abfrage-Teil bei Bedarf mit explode() für spezifische Parameter aufteilen.

Bearbeitung: Beachten Sie, dass parse_url() so hart wie möglich versucht, den ihm übergebenen String zu analysieren, sodass schlechte URLs oft erfolgreich sind, obwohl das resultierende Datenarray sehr eigenartig sein wird. Es liegt natürlich an Ihnen, wie eindeutig Sie Ihre Validierung gestalten möchten und welche genauen Anforderungen Sie an Ihre Benutzereingabe stellen.

0voto

foreline Punkte 3591
preg_match('#watch\?v=([^&]+)#', $url, $matches);
echo $matches[1];

0voto

indianwebdevil Punkte 4551

Es wird dringend empfohlen, parse_url() nicht für die Validierung von URLs zu verwenden. Hier ist eine gute Lösung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X