Ich möchte PHP verwenden, um zu überprüfen, ob die in der $myoutput
Variable gespeicherte Zeichenfolge eine gültige Link-Syntax enthält oder nur ein normaler Text ist. Die Funktion oder Lösung, nach der ich suche, sollte alle Linkformate erkennen, einschließlich derjenigen mit GET-Parametern.
Eine auf vielen Websites vorgeschlagene Lösung zur tatsächlichen Abfrage von Zeichenfolgen (mithilfe von CURL oder file_get_contents()
Funktion) ist in meinem Fall nicht möglich, und ich möchte sie vermeiden.
Ich dachte über reguläre Ausdrücke oder eine andere Lösung nach.
Antworten:
Sie können einen nativen Filtervalidator verwenden
Beispiel:
quelle
FILTER_VALIDATE_URL
das Protokoll einer URL nicht überprüft wird. Alsossh://
,ftp://
usw. wird vergehen.Hier ist das beste Tutorial, das ich dort gefunden habe:
http://www.w3schools.com/php/filter_validate_url.asp
Mögliche Flaggen:
quelle
!filter_var(...) === false
==>filter_var(...) === true
oder einfachfilter_var(...)
. :)ttps://www.youtube.com
als gültigDie Verwendung von filter_var () schlägt für URLs mit Nicht-ASCII-Zeichen fehl, z . B. ( http://pt.wikipedia.org/wiki/Guimarães ). Die folgende Funktion codiert alle Nicht-ASCII-Zeichen (z. B. http://pt.wikipedia.org/wiki/Guimar%C3%A3es ), bevor filter_var () aufgerufen wird.
Hoffe das hilft jemandem.
quelle
quelle
Persönlich möchte ich hier reguläre Ausdrücke verwenden. Der folgende Code hat bei mir perfekt funktioniert.
quelle
Bei Problemen mit filter_var (), die http: // benötigen, verwende ich:
$is_url = filter_var($filename, FILTER_VALIDATE_URL) || array_key_exists('scheme', parse_url($filename));
quelle
ttps://www.youtube.com
als gültigSie können diese Funktion verwenden, sie gibt jedoch false zurück, wenn die Website offline ist.
quelle
Eigentlich ... filter_var ($ url, FILTER_VALIDATE_URL); funktioniert nicht sehr gut. Wenn Sie eine echte URL eingeben, funktioniert dies, es wird jedoch nur nach http: // gesucht. Wenn Sie also etwas wie " http: // weirtgcyaurbatc " eingeben , wird weiterhin angezeigt , dass es echt ist.
quelle
ttps://www.youtube.com
als gültigEine andere Möglichkeit, um zu überprüfen, ob die angegebene URL gültig ist, besteht darin, zu versuchen, darauf zuzugreifen. Die folgende Funktion ruft die Header von der angegebenen URL ab. Dadurch wird sichergestellt, dass die URL gültig ist UND der Webserver aktiv ist:
quelle
Kam über diesen Artikel aus dem Jahr 2012. Es berücksichtigt Variablen, die nur einfache URLs sein können oder nicht .
Der Autor des Artikels, David Müeller , bietet diese Funktion, die er sagt, "... könnte sich lohnen", zusammen mit einigen Beispielen
filter_var
und ihren Mängeln.quelle
Wenn jemand daran interessiert ist, die cURL zur Validierung zu verwenden. Sie können den folgenden Code verwenden.
quelle