关于“php_$_server函数”的问题,小编就整理了【3】个相关介绍“php_$_server函数”的解答:
PHP $_SERVER['REMOTE_ADDR']取得的竟然是服务器IP?可能是服务器所在网关做了些网络设置,比如端口映射之类的,造成php不能识别客户端的ip 建议你在同一个局域网内测试一下,如果没问题,可能就是这个原因
如何让PHP能够读取系统环境变量?一、fpm模式
1、通过服务器传递
如在nginx的配置里设置:
fastcgi_param ENV_XXX 123456;
每次页面请求nginx都会将此变量传递给php,php可以通过getenv函数或$_SERVER全局变量获得。
2、通过fpm配置传递
fpm在每次启动时都会读取php-fpm.conf文件中的环境变量设置,如:
env[ENV_XXX]="test test"
或者让fpm读取系统环境变量,如:
env[ENV_XXX]=$ENV_XXX
注意此种方式要确保系统环境变量存在,且不被sudo禁用。
如果fpm是用sudo方式启动,默认sudo会禁用一些环境变量,可以通过以下方式放开限制:
vim /etc/sudoers
Defaults env_reset
Defaults env_keep = "ENV_XXX"
或者干脆放开所有限制:
Defaults !env_reset
最后,如果修改了php-fpm.conf中的设置需要重启fpm才能生效,同样php可以通过getenv函数或$_SERVER全局变量获得环境变量。
二、命令行模式
命令行模式限制较少,可以通过getenv函数或$_SERVER全局变量获取对当前执行用户有效的系统环境变量,同样要注意sudo的限制。
PHP获取域名的几种方法?代码示例:
获取当前的域名:
echo $_SERVER['SERVER_NAME'];
//获取来源网址,即点击来到本页的上页网址
echo $_SERVER["HTTP_REFERER"];
$_SERVER['REQUEST_URI'];//获取当前域名的后缀
$_SERVER['HTTP_HOST'];//获取当前域名
dirname(__FILE__);//获取当前文件的物理路径
dirname(__FILE__)."/../";//获取当前文件的上一级物理路径
?>
回答如下:1. 使用$_SERVER['HTTP_HOST']获取当前请求的域名。
2. 使用$_SERVER['SERVER_NAME']获取当前服务器的域名。
3. 使用$_SERVER['SERVER_ADDR']获取当前服务器的IP地址,再通过DNS查询获取对应的域名。
4. 使用parse_url()函数解析当前请求的URL,获取其中的host部分。
5. 使用gethostbyaddr()函数获取当前服务器的IP地址对应的域名。
获取域名的方法可以有不同的实现方式,以下是几种常见的PHP获取域名的方法:
1. 通过$_SERVER['HTTP_HOST']获取域名:
```php
$host = $_SERVER['HTTP_HOST'];
echo $host;
```
2. 通过$_SERVER['SERVER_NAME']获取域名:
```php
$name = $_SERVER['SERVER_NAME'];
echo $name;
```
3. 通过$_SERVER['REQUEST_URI']获取域名:
```php
$uri = $_SERVER['REQUEST_URI'];
$host = parse_url($uri, PHP_URL_HOST);
echo $host;
```
4. 通过$_SERVER['PHP_SELF']获取域名:
```php
$self = $_SERVER['PHP_SELF'];
$host = rtrim(str_replace(basename($self), '', $_SERVER['HTTP_HOST'].$self), '/');
到此,以上就是小编对于“php_$_server函数”的问题就介绍到这了,希望介绍关于“php_$_server函数”的【3】点解答对大家有用。