2016-08-30 6 views
-1

ich mehrere Websites bin auf der Suche um dieses Problem zu beheben. Das Problem ist, dass ich Benutzer frage, Webadresse einzugeben und wie Leute sagen, vertraue Benutzereingabe nie.URL Validierung muss enthalten http oder https

So können mögliche Szenario so aussehen:

https oder http://www.google.com

https oder http://google.com

www.google.com

google.com

Jetzt ich Die URL muss so sein. http oder https // www.google.com

Im Moment habe ich Code unten, aber es funktioniert nicht wie erwartet.

$url = "www.google.com";  
if (preg_match("/\b(?:(?:https?):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $url)) { 
     echo "URL is valid"; 
    } 
    else { 
     echo "URL is invalid"; 
    } 
+2

Verwenden Sie 'parse_url': http://php.net/manual/en/func tion.parse-url.php –

+0

wenn Sie erklären, warum dann wäre es toll. Vielen Dank für Downvoting – Ironic

+2

Alternativ vielleicht 'filter_var' verwenden, um mit' FILTER_VALIDATE_URL' – RamRaider

Antwort

3

prüfen erwähnt haben, wenn der Beginn des Strings http enthält, die auch https und prüfen enthält, wenn es eine ist gültige URL:

if((strpos($url, 'http') === 0) && filter_var($url, FILTER_VALIDATE_URL)) { 
    echo "URL is valid"; 
} else { 
    echo "URL is invalid"; 
} 
+0

Ihre Lösung ist richtig. Ich war dumm, Regex zu überprüfen. Es ist so einfach. Danke abgestimmt. – Ironic

0

diesen Ausdruck Versuchen

/[[email protected]:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[[email protected]:%_\+.~#?&//=]*)?/gi 

Es alle Fälle aceept, die Sie oben

+0

Ich möchte nur eine Bedingung korrekt (http://www.google.com) Rest sollte ungültig sein. – Ironic

Verwandte Themen