ip almak için iyi bir yol olduğunu

4 Cevap php

PHP IP adresini almanın iyi bir yolu nedir:

getenv('REMOTE_ADDR');

ya da,

$_SERVER['REMOTE_ADDR'];

ikisi arasında, eğer varsa, bana farkı söyle.

4 Cevap

$ _SERVER ile açıkçası sadece $ _SERVER süper içeriğine erişmek ise getenv (), herhangi bir ortam değişkenleri (PHP sadece komut dosyası için bir ortam değişkeni olarak REMOTE_ADDR kaydeder) erişmek için kullanılabilir.

Ortak bir yaklaşım gerçekten işlevsellik-bilge bir fark olmamasına rağmen, bu için $ _SERVER kullanmaktır.

$ _SERVER Bir PHP değişkeni inşa ederken değerler için getenv () çevreyi (muhtemelen Apache / IIS) isteyin.

IP almak için en iyi yolu;

$ip = (!empty($_SERVER['REMOTE_ADDR'])) ? $_SERVER['REMOTE_ADDR'] : getenv('REMOTE_ADDR');

Ama bu iki değişken arasında herhangi bir fark var şüpheliyim ... Hm.

Tho aramalar arasında hiçbir fark yoktur. Gördüğünüz gibi PHP manual aynı örnekte her iki yöntemi kullanabilirsiniz. Orada $ _SERVER gibi global değişkenler etkin olmayan bazı durumlar vardır ve sen () getenv kullanmak zorunda kalıyor. Benim durumumda devre dışı global değişkenler ile bir sunucu görmedim.

$_SERVER['REMOTE_ADDR'] uzak bir isteği oluştuğunda kurmak $ _SERVER [] dizi erişerek doğrudan küresel değişkeni okunan:

* $SERVER böyle başlıklar, yollar ve komut yerleri gibi bilgileri içeren bir dizidir olduğunu. Bu dizideki girdiler HTTP sunucusu tarafından oluşturulur. Her web sunucusu bunları sağlayacak hiçbir garantisi yoktur; sunucuları, bazı yapmayabilir veya burada listelenmeyen başkalarını sağlayabilirler. O dedi, bu değişkenlerin çok sayıda »CGI 1.1 şartnamede muhasebeleştirilir, bu yüzden bu beklemek gerekir.

Ilgili değeri almak için herhangi bir çevre değişkeni getenv () fonksiyonu erişim!

Her iki durumda da aynı değer ve aynı değişkeni erişmek ... ama $ _SERVER yerine) mevcut ortamda tanımlanmış bir değişkenin değerini almak (getenv, PHP superglobal değişken bir yapı olduğunu!

Ben bu durumda superglobal değişkenin kullanımı IP adresini almak için en iyi yol olduğunu düşünüyorum!