Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 12-03-11, 18:14   #1 (permalink)
User
 
Data di registrazione: Jan 2011
Ubicazione: bari
Messaggi: 119
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.
__________________
webgeneration.it
giamal84 non in linea   Rispondi citando
Vecchio 12-03-11, 23:10   #2 (permalink)
User
 
L'avatar di html5today
 
Data di registrazione: Dec 2010
Ubicazione: Roma
Messaggi: 108
Perchè scomodare le Regular Expressions quando c'è h t t p : //php.net/manual/en/function.parse-url.php ?
html5today non in linea   Rispondi citando
Vecchio 13-03-11, 10:22   #3 (permalink)
User
 
Data di registrazione: Jan 2011
Ubicazione: bari
Messaggi: 119
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.
__________________
webgeneration.it
giamal84 non in linea   Rispondi citando
Vecchio 13-03-11, 12:06   #4 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Puoi fare cosi:
Codice PHP:
filter_var('example.com'FILTER_VALIDATE_URL); 
EDIT: Però è disponibile solamente da php 5.2.0
Altrimenti puoi utilizzare questa funzione:
Codice 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;
    } 

Ultima modifica di Thedarkita : 13-03-11 12:09.
Thedarkita ora è in linea   Rispondi citando
Vecchio 13-03-11, 12:28   #5 (permalink)
User
 
Data di registrazione: Jan 2011
Ubicazione: bari
Messaggi: 119
L'url da controllare deve essere tipo questa:

www . nomesito . ext

Non mi serve che ci sia altro nella stringa
__________________
webgeneration.it
giamal84 non in linea   Rispondi citando
Vecchio 14-03-11, 10:27   #6 (permalink)
User
 
L'avatar di html5today
 
Data di registrazione: Dec 2010
Ubicazione: Roma
Messaggi: 108
Prova così
Codice PHP:
function is_url($string) {
    if (
preg_match('/www\.([^\.]+)\.([^\.]{2,4})/'$string) {
        return 
true;
    } else {
        return 
false;
    }

(non testato, ma dovrebbe fungere)
html5today non in linea   Rispondi citando
Vecchio 14-03-11, 10:47   #7 (permalink)
User
 
Data di registrazione: Jan 2011
Ubicazione: bari
Messaggi: 119
grazie per la risposta.
dopo alcune prove, ho creato questa espressione:

Codice PHP:

function isURLvalida($url){
    
        
$pattern "/[w]{3}(\.){1}[a-z0-9]{2,}(\.){1}[a-z0-9]{2,3}/";
        
        return 
preg_match($pattern$url);
        
    } 
va bene lo stesso?
__________________
webgeneration.it
giamal84 non in linea   Rispondi citando
Vecchio 14-03-11, 10:52   #8 (permalink)
User
 
L'avatar di html5today
 
Data di registrazione: Dec 2010
Ubicazione: Roma
Messaggi: 108
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...
html5today non in linea   Rispondi citando
Vecchio 14-03-11, 11:05   #9 (permalink)
User
 
Data di registrazione: Jan 2011
Ubicazione: bari
Messaggi: 119
Il tuo aiuto mi è stato molto utile.
Grazie ancora.
__________________
webgeneration.it
giamal84 non in linea   Rispondi citando
Rispondi
Tags: ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:29.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.