Maison >développement back-end >Problème PHP >Quelle est la différence entre getenv et serveur en php

Quelle est la différence entre getenv et serveur en php

WBOY
WBOYoriginal
2022-08-26 16:48:351574parcourir

La différence entre getenv et le serveur en php : 1. getenv peut obtenir les variables d'environnement système, la syntaxe est "string getenv(string varname)", et "$_SERVER" est le tableau de variables super globales du serveur 2. getenv le fait ; ne prend pas en charge IIS PHP exécuté en mode isapi est pris en charge par "$_SERVER".

Quelle est la différence entre getenv et serveur en php

L'environnement d'exploitation de cet article : système Windows 10, PHP version 8.1, ordinateur Dell G3

Quelle est la différence entre getenv et server en php

La différence d'utilisation entre getenv() et $_SERVER ? en PHP :

getenv récupère les variables d'environnement système, le format des variables d'environnement est nom=valeur.

Syntaxe :

string getenv(string varname);

Valeur de retour : String Type de fonction : fonction système PHP

Description du contenu

Si la variable d'environnement varname est obtenue correctement, la valeur de la variable sera renvoyée, sinon false sera renvoyée.

L'exemple suivant peut obtenir l'URL de la machine sur laquelle se trouve le navigateur de l'utilisateur

$ip = getenv(“REMOTE_ADDR”);
?>

$_SERVER est le tableau de variables super globales du serveur. Utilisez $_SERVER['REMOTE_ADDR'] pour obtenir également l'adresse IP du client.

La différence entre les deux est que getenv ne prend pas en charge PHP exécuté en mode isapi IIS.

Développer les connaissances

Résoudre la différence entre PHP n'obtient pas la fonction d'adresse IP` getenv("REMOTE_ADDR") et $_SERVER['REMOTE_ADDR'] getenv(“REMOTE_ADDR”)$_SERVER['REMOTE_ADDR']的区别

最近用PHP帮朋友写了个用于投票的页面,一切都很顺利,装上后发现:访客IP地址没能记录上(没能成功获取IP地址),怪事,当初本地测试都好的呀。难不成本地和服务器有别,马上开个空间,测试,仍然一切正常。再一个个问题都排除后,了解到对方是windows下的iis,而自己测试都在apache上,很可能是这个原因。

马上更换函数:将原来的ip地址获取函数”getenv(“REMOTE_ADDR”)“更换为”$_SERVER['REMOTE_ADDR']

Récemment, j'ai utilisé PHP pour aider un ami à rédiger une page de vote. Après l'avoir installé, j'ai constaté que l'adresse IP du visiteur n'était pas enregistrée (l'adresse IP n'a pas pu être obtenue avec succès). . Le test local s’est bien passé. Est-il possible que l'ordinateur local soit différent du serveur ? J'ai immédiatement ouvert un espace et je l'ai testé. Tout est toujours normal. Après avoir résolu chaque problème, j'ai appris que l'autre partie exécutait IIS sous Windows, alors que mes propres tests étaient tous sur Apache. C'était probablement la raison.

Remplacez la fonction immédiatement : remplacez la fonction d'acquisition d'adresse IP d'origine "getenv("REMOTE_ADDR")" par "$_SERVER['REMOTE_ADDR']", écrasez et mettez à jour , En regardant à nouveau la base de données, l'adresse IP a été enregistrée avec succès, c'est fait.

Puisque nous rencontrons à nouveau ce problème, enregistrons-le : la différence entre getenv("REMOTE_ADDR") et $_SERVER['REMOTE_ADDR'] en PHP pour obtenir l'adresse IP du visiteur (*** fin). à travers cela Une chose est déjà très claire. La fonction getenv("REMOTE_ADDR") peut obtenir avec succès l'adresse IP dans Apache, mais dans iis, elle n'a aucun effet. La fonction $_SERVER['REMOTE_ADDR'] peut réussir à obtenir l'adresse IP du visiteur dans Apache, mais dans iis. Valable également ci-dessous.

Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn