从preg_match()PHP中提取单个值

时间:2017-03-16 22:57:26

标签: php regex

如果我执行以下操作:

preg_match('/[a-z]+.[a-z]+$', $_SERVER['HTTP_HOST'], $domain);

$SERVER['HTTP_HOST'] = subdomain.mydomain.compreg_match()会创建一个包含所有匹配项的数组$domain,在这种情况下:$domain = ["mydomain.com"]

我想要的结果是$domain = "mydomain.com"

我的问题是,有没有更优雅的方式来做到这一点:

preg_match('/[a-z]+.[a-z]+$', $_SERVER['HTTP_HOST'], $domain);
$domain = $domain[0];

1 个答案:

答案 0 :(得分:1)

我不知道它是否更优雅,但它更直接:

$arr = [
    'subdomain.mydomain.com',
    'mydomain.com',
    'subdo.subdomain.mydomain.com'
];

foreach ($arr as $item) {
    echo preg_replace('~(?:.*\.)?(?=.*\.)~', '', $item), PHP_EOL;
}

demo

相关问题