it-swarm.com.de

Integrierte Datenüberprüfungsfunktion für URLs

Ich habe ein Front-End-Formular, in dem Benutzer ihre Website-URL übermitteln können.

Ich überprüfe tatsächlich URLs in Wordpress mit einer PHP -Funktion und möchte wissen, ob es eine integrierte Funktion gibt, mit der ich dies tun kann?

Dies ist die Funktion, die ich tatsächlich benutze:

function validateURL($URL) {
    $v = "/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i";
    return (bool)preg_match($v, $URL);
}
2
roastedtoast

Verwenden Sie esc_url( $url ) für URLs, die angezeigt werden sollen, und esc_url_raw( $url ), wenn die URL an die Datenbank gesendet werden soll.

  • Das erste ersetzt das bloße kaufmännische Und-Zeichen & durch &.
  • Der zweite ist ein Wrapper für den ersten; es wird nur das Entweichen von kaufmännischem Und unterdrücken.
  • Beide Funktionen prüfen das Protokoll. Die Liste finden Sie unter wp_allowed_protocols(): 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'Gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp' Damit eine URL wie javascript:alert("Hacked!"); nicht durchkommt.

Diese Funktionen sind nicht genau Validatoren . Sie desinfizieren den Wert. Sie sollten sie jedoch immer dann verwenden, wenn Sie eine URL zum Speichern oder Anzeigen haben.

Es gibt auch wp_validate_redirect( $location, $default ).

$location ist hier eine URL und $default eine Ersatz-URL, wenn der erste Wert nicht gültig ist. Aus seinem doc-Block:

Überprüft eine URL zur Verwendung in einer Umleitung.

Überprüft, ob der $ location einen zulässigen Host verwendet, wenn er einen absoluten Pfad hat. Ein Plugin kann daher zulässige Hosts in oder aus der Liste setzen oder entfernen.

Beachten Sie, dass die zulässigen Hosts nicht alle (Unter-) Domänen einer Installation mit mehreren Standorten enthalten. Keine Ahnung warum.

5
fuxia

Es gibt keine Funktion, die eine URL validiert, sondern nur eine, die eine Zeichenfolge für die Verwendung innerhalb einer URL bereinigt ( sanitize_title ).

Es gibt einen PHP Filter , der URLs validiert: FILTER_VALIDATE_URL .

3
Milo