0

私はこの正規表現を使用してドメイン名を検証してきましたが、非常にうまく機能します。http://www.またはを追加する必要がありhttps://www.ます。私は物事を台無しにするのではないかと心配しています。現在、http://www.

また、これを曲げてサブドメインを拒否する方法はありますか?

したがって、全体としては次のようになります。

http://www.domain.com -> valid
www.domain.com - > Invalid (Should have the http://www. part)
http://sub.domain.com - > Invalid (Subdomain)
http://www.sub.domain.com -> Invlaid (Subdomain)

そのパーツで色々やってみましhttp://www.たが、エラーで終わりました。サブドメインの拒否部分を行う方法がわかりません。

   function isurl($this_url)
    {
            if(preg_match("/^([a-z0-9]([-a-z0-9]*[a-z0-9])?\.)+((a[cdefgilmnoqrstuwxz]|aero|arpa)|(b[abdefghijmnorstvwyz]|biz)|(c[acdfghiklmnorsuvxyz]|cat|com|coop)|d[ejkmoz]|(e[ceghrstu]|edu)|f[ijkmor]|(g[abdefghilmnpqrstuwy]|gov)|h[kmnrtu]|(i[delmnoqrst]|info|int)|(j[emop]|jobs)|k[eghimnprwyz]|l[abcikrstuvy]|(m[acdghklmnopqrstuvwxyz]|mil|mobi|museum)|(n[acefgilopruz]|name|net)|(om|org)|(p[aefghklmnrstwy]|pro)|qa|r[eouw]|s[abcdeghijklmnortvyz]|(t[cdfghjklmnoprtvwz]|travel)|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw])$/i", $this_url)) 
                {
                return true;
                }

    }

    $this_url = "www.domain.com";

    if (isurl($this_url)) 
    {echo "Success";} 
    else 
    {echo "Fail";}
4

2 に答える 2

0

これはあなたのために働くはずです:

<?php
    function isurl($this_url) {
        return (filter_var($this_url, FILTER_VALIDATE_URL) && preg_match("#^https?://www\.#", $this_url));
    }
?>

filter_varと単純な正規表現を使用します。

于 2012-11-18T12:40:07.830 に答える