J'utilise cette fonction PHP pour valider une URL.Modèle REGEX pour la validation d'URL
$url = preg_replace("/[^A-Za-z0-9-\/\.\:]/", "", trim($url));
$url = preg_replace('%^(?!https?://www\.).*%', 'http://www\.$0', $url);
Mais, ce n'est pas parfait pour moi. Je veux ce contrôle:
1 - Est-il commencer par http: // ou https: //? Sinon, ajoutez http (ou https)
2 - Si elle n'a pas et sous-domaine si elle n'a pas www, ajouter. Mais s'il a sous-domaine, ne pas ajouter www.
Exemples:
example.com
CONVERT -> http://www.example.com
www.example.com
CONVERT -> http://www.example.com
subdomain.example.com
CONVERT -> http://subdomain.example.com
http://subdomain.example.com
CONVERT -> http://subdomain.example.com
, je dois donc améliorer mon modèle REGEX. Mais je ne peux pas. Comment puis-je l'utiliser?
La première regex supprimera trop de charactes valides de n'importe quel chemin d'URL existant et échouera sur tout nouveau http: // [:: 1]/~ user/a + b? X = 1 # 2. – mario
duplication possible de [problème regex avec url] (http://stackoverflow.com/questions/2987263/regex-problem-with-url) –