- Home
- Categorie
- Coding e Sistemistica
- PHP
- espressione regolare per riconoscere url
-
espressione regolare per riconoscere url
Ciao,
vorrei riconoscere tramite espressione regolare delle url fatte cosi:www . nomesito . ext
Come si può fare con php?
Saluti.
-
Perchè scomodare le Regular Expressions quando c'è h t t p : //php.net/manual/en/function.parse-url.php ?
-
io vorrei sapere se una data stringa è un url o no, quindi deve restituire TRUE o FALSE.
parse_url invece restituisce un array e non valida l'url.
-
Puoi fare cosi:
[php]
filter_var('example.com', FILTER_VALIDATE_URL);
[/php]EDIT: Però è disponibile solamente da php 5.2.0
Altrimenti puoi utilizzare questa funzione:
[php]
function valid_url($url)
{
$pattern = "/^((ht|f)tp(s?)://|~/|/)?([w]{2}([\w-]+.)+([\w]{2,5}))(:[\d]{1,5})?/";
if (!preg_match($pattern, $url))
{
return FALSE;
}return TRUE; }
[/php]
-
L'url da controllare deve essere tipo questa:
www . nomesito . ext
Non mi serve che ci sia altro nella stringa
-
Prova così
[php]function is_url($string) {
if (preg_match('/www.([^.]+).([^.]{2,4})/', $string) {
return true;
} else {
return false;
}
}[/php](non testato, ma dovrebbe fungere)
-
grazie per la risposta.
dopo alcune prove, ho creato questa espressione:[php]
function isURLvalida($url){
$pattern = "/[w]{3}(\.){1}[a-z0-9]{2,}(\.){1}[a-z0-9]{2,3}/"; return preg_match($pattern, $url); }
[/php]va bene lo stesso?
-
Uhm... una serie di considerazioni:
- [w]: sono inutili le parentesi quadre (che indicano una "serie" di caratteri, tipo [a-z] cioè tutti i caratteri minuscoli dalla "a" alla "z"), qui c'è un carattere solo, e comunque mi pare di ricordare che sia più efficiente mettere (in questo caso) "www" invece che "w{3}"
- (.){1}: inutile il {1}, è implicito che se non indichi nulla lui cerca UN carattere e inutile la parentesi intorno al punto
- [a-z0-9]{2,3} per l'estensione: non mi pare sia consentito inserire numeri nella "estensione" di un dominio (è vero che io avevo messo il pattern più generico ma visto che controlli controlla bene), poi come hai fatto ti limiti solo ai caratteri minuscoli (se scrivono la URL in maiuscolo la perdi) e in più esistono estensioni (tipo .mobi) che sono di 4 caratteri
Per il resto va bene...
-
Il tuo aiuto mi è stato molto utile.
Grazie ancora.