php中$_server,PHP $_SERVER['REMOTE_ADDR']取得的竟然是服务器IP?

用户投稿 50 0

关于“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】点解答对大家有用。

抱歉,评论功能暂时关闭!