Mam następujące wyrażenia regularnego, by sprawdzić, czy adres URL jest poprawny:Czy zmienić wyrażenie regularne, aby zezwolić na adres IP podczas sprawdzania adresu URL?
preg_match('/^(http(s?):\/\/)?(www\.)?+[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/i', $url);
chciałbym zmodyfikować tę część [a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})
(przynajmniej mam nadzieję, że jest to pogrubienie części) być albo adres IP lub ten podświetlona część.
W tej chwili wyrażenie regularne jest całkiem dobre dla mnie, ponieważ poprawnie odszukuje złe adresy URL - chociaż uważam, że zacznie działać nieprawidłowo, gdy nowa polityka domenowa z ICANN zostanie uruchomiona (np. Google może chcieć url http://search.google - zamiast http://google.com poszukiwaniu)
Tak czy inaczej, chciałbym dodać możliwość włączenia adresy IP będzie również prawidłowy adres URL, ale nie jestem pewien jak czynnik, który w regex
Jeśli ktokolwiek mógłby pożyczyć rękę, byłoby świetnie!
Możesz użyć: ['filter_var ('http://example.com', FILTER_VALIDATE_URL)'] (http://php.net/manual/en/function.filter-var.php) – NullUserException
I nie wiedziałem, że PHP ma wbudowane filtry URL - dziękuję za wskazanie tego ... – MrJ