php - 从 $_SERVER ['SERVER_NAME' 中删除子域]

标签 php regex dns subdomain pattern-matching

我需要制作一个脚本,它将从 $_SERVER['SERVER_NAME'] 中删除子域,以便在 setcookie 函数的域选项上使用它,以允许在所有可能的子域上访问 cookie。

例如,假设我有

function strip_out_subdomain($domain)
{
    //do something to remove subdomain
    return $only_my_domain;
}
$domain = strip_out_subdomain($_SERVER['SERVER_NAME']);
setcookie('mycookie', '123', time()+3600, '/', $domain);

这里的主要问题是我不知道我的域的模式。它可能是这样的:

  • www.mydomain.com
  • subdomain.mydomain.com
  • subdo.mydo.co
  • subdo.subdo.mydomain.com
  • subdo.subdo.mydo.co.uk
  • 等等

谢谢

斯蒂芬妮

最佳答案

这是从完整域名中删除子域部分的正则表达式样式。

.*?

运算符使通配符匹配不贪婪,以便匹配第一个点。

function strip_out_subdomain($domain)
{
    $only_my_domain = preg_replace("/^(.*?)\.(.*)$/","$2",$domain);
    return $only_my_domain;
}

关于php - 从 $_SERVER ['SERVER_NAME' 中删除子域],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5328442/

相关文章:

cookies - 在多个域上自动 cookie 单点登录 - 如谷歌

php - MySql 两个表之间的 CROSS JOIN 并与另一个表匹配

php - 外键一对多(postgresql、php、yii2)

r - 计算 r 中一组单词的出现次数

Java String.replaceAll 不替换并发重复序列

asp.net - ISAPI 重写(在 IIS 和 ASP.NET 上使用 Helicon)和动态查询字符串追加?

ruby-on-rails - 将多个子域指向同一个 heroku 应用程序

php - $_POST 一个输入值分为两部分(分解?)

php - Yii setFlash 与注销

python - 导入错误 : No module named dns. 消息