0

この方法で、フォームから URL を取得しています。

$input_website = isset($_POST['website']) ? check_plain($_POST['website']) : 'None';

たとえば、http: //www.example.comはexample.comとして返され 、www.example.comはexample.comなどを返します。

最初のケースhttp://www.example.comに対して正しい URL を返します が、 www.example.comまたはexample.comに対しては何も返しません。

function get_domain($url)
{
    $pieces = parse_url($url);
    $domain = isset($pieces['host']) ? $pieces['host'] : '';
    if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
        return $regs['domain'];
    }
    return false;
}

その件についてアドバイスをお願いできますか?

4

3 に答える 3

2

あなたとの議論によると:

$url = 'www.noamddd.com';
$arrUrl = explode("/", $url);
echo $arrUrl[0];

古い答え:

次のコード ブロックで関数を作成し、ドメイン名を取得します。

これを試して

詳しくはparse_url

$url = 'http://google.com/dhasjkdas/sadsdds/sdda/sdads.html';
$parse = parse_url($url);
print $parse['host']; //google.com

また、別の方法でこれを行うことができます:

echo $domain = str_ireplace('www.', '', parse_url($url, PHP_URL_HOST));//google.com
于 2016-05-03T09:43:58.880 に答える
0

URL だけがあり ( frayne-konokが提案するような現在のドメイン名は必要ない)、サーバー名を抽出したい場合は、次のような正規表現を使用できます。

$serverName = preg_replace('|.*?://(.*?)/.*|', '$1', $url);
于 2016-05-03T09:46:26.080 に答える