filter_var($url, FILTER_VALIDATE_URL)
sembra essere un ottimo modo per rilevare se $url
contiene o less URL. C'è un modo per vedere quale espressione regolare questa function utilizza per rilevare?
Grazie
Usa qualcos'altro quindi una regex. In C, controlla il return della function php_url_parse_ex()
(C), che puoi vedere a: ext / standard / url.c, row 97 , chiamata a ext / filter / logical_filters.c, row 440 .
In questi termini: se chiami parse_url()
(PHP) in PHP ed esegui gli stessi controlli di php_filter_validate_url()
(C), avresti lo stesso risultato.
Il model è simile all'analisi dell'URL.
$pattern = "/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i";
La risposta di Kris alla regex di PHP per la validation di un URL utilizza parse_url che, dopo aver letto la risposta di Wrikken su cosa filter_var ($ url, FILTER_VALIDATE_URL) effettivamente fa, sembra migliore perché consente il massimo controllo.