🗣 SL提问: php获取请求域名
✍️ Ai批改: 在 PHP 中,获取当前请求的域名(即服务器域名)可以通过 `$_SERVER` 超全局数组来实现。以下是几种常见的方式:
-
✅ 获取请求域名的常用方法
1、获取域名(不带端口)
php
$domain = $_SERVER['HTTP_HOST'];
echo $domain; // 输出类似:example.com 或 localhost
说明:`HTTP_HOST` 会返回客户端请求的域名和端口号(如果指定了的话),例如:`www.example.com:8080`。
-
2、获取域名(推荐使用 `SERVER_NAME`)
php
$domain = $_SERVER['SERVER_NAME'];
echo $domain; // 输出类似:example.com
说明:`SERVER_NAME` 是 Apache 等服务器配置中定义的主机名,可能会与 `HTTP_HOST` 不同。
-
3、获取完整的请求地址中的域名(结合协议)
如果你需要获取完整的 URL 中的域名部分:
php
$scheme = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? https : http;
$domain = $scheme 、:// 、$_SERVER['HTTP_HOST'];
echo $domain; // 输出:http://example.com 或 https://example.com
-
🔒 安全建议
使用 `HTTP_HOST` 时需要注意它是由客户端发送的,可能被伪造。
如果用于安全验证或关键逻辑,建议使用 `SERVER_NAME` 或结合白名单校验。
-
📌 示例:获取完整当前 URL 的域名部分
php
function getCurrentDomain() {
$host = $_SERVER['HTTP_HOST'] ?? $_SERVER['SERVER_NAME'];
$port = $_SERVER['SERVER_PORT'] ?? 80;
$scheme = (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') ? https : http;
$domain = $scheme 、'://' 、$host;
if (($scheme === 'http' && $port != 80) ($scheme === 'https' && $port != 443)) {
$domain .= ':' 、$port;
}
return $domain;
}
echo getCurrentDomain(); // 输出如:https://example.com 或 http://localhost:8080
-
如有更具体的需求(比如子域名、反向代理等场景),可以进一步补充说明,我可以提供更详细的解决方案。
0
IP地址: 7.129.120.211
搜索次数: 3
提问时间: 2025-07-13 02:16:04
❓️ 热门提问:
黄金价格平台
焦家金矿工资
三川智慧
附近上门回收黄金
黄金项链大概多少克
外贸英文网站建站
外贸公司网站优化
企业seo
ai接入公众号
PHP伪协议是什么?
豌豆Ai站群搜索引擎系统
🤝 关于我们:
三乐Ai
作文批改
英语分析
在线翻译
拍照识图
Ai提问
英语培训
本站流量
联系我们
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.05.20》搭建本站。