PHP'de Tam URL'yi Alın

Retrieve Full Url Php



PHP'de iki tür genel değişken kullanılabilir: süper küresel değişken ve kullanıcı tanımlı değişken. $_SERVER geçerli sayfanın tam yolunu almak için kullanılan süper küresel bir dizi değişkenidir. Sayfanın tam URL'sini almak için URL'nin protokolü (HTTP veya HTTPS) de gereklidir. Eğer $_SERVER['HTTPS'] İadeler 'üzerinde', o zaman HTTPS, URL adresiyle birlikte kullanılacaktır, aksi halde, HTTP kullanılacak. Geçerli sayfanın tam URL adresi, aşağıdakiler kullanılarak nasıl alınabilir? $_SERVER dizi bu eğitimde açıklanmıştır.

Gerekli Değişkenler

Geçerli sayfanın URL adresini bulmak için aşağıdaki süper küresel değişkenler gereklidir.







Süper Küresel Değişkenler Amaçlar
$_SERVER['HTTPS'] geri döner üzerinde geçerli sayfanın URL'sinde HTTPS protokolü kullanılıyorsa.
$_SERVER['HTTP_HOST'] Geçerli sayfanın sunucusunun adını döndürür.
$_SERVER['REQUEST_URI'] İstenen kaynak adını döndürür.
$_SERVER['SERVER_PORT'] Sunucunun port numarasını döndürür.
$_SERVER['QUERY_STRING'] Geçerli sayfanın URL adresinde varsa, sorgu dizesi değerini döndürür.

Örnek 1: Koşullu bir ifade kullanarak geçerli sayfanın URL'sini görüntüleyin

Aşağıdaki örnek, geçerli sayfanın URL'sinde kullanılan protokolü almak için koşullu ifadenin nasıl kullanılabileceğini gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun.



Geçerli URL'nin alan adını almak için $_SERVER['HTTP_HOST'] değeri kullanılır. $_SERVER['REQUEST_URI'] değeri, istenen kaynağın adını almak için kullanılır. gitmiş) işlevi $_SERVER['HTTPS'] öğesinin bir küme olup olmadığını kontrol etmek için kullanılır ve eğer ayarlanmışsa, o zaman $_SERVER['HTTPS'] değerini kontrol edin. üzerinde ya da değil. Ardından, mevcut sayfanın tam URL'sini almak için bu üç değişkenin değerleri '//:' ile birleştirilir.




// Geçerli sayfanın alan adını oku
$alanı = $_SERVER['HTTP_HOST'];
//İstenen kaynağı oku
$kaynak = $_SERVER['REQUEST_URI'];
// Geçerli url'nin protokolünü öğrenin
Eğer( gitmiş ($_SERVER['HTTP'ler']) && $_SERVER['HTTP'ler'] === 'üzerinde')
$ protokolü = 'https';
Başka
$ protokolü = 'http';

// Tam URL adresini almak için tüm parçaları birleştirin
$url = $ protokolü.': //'.$alanı.$kaynak;
// Geçerli sayfanın URL adresini yazdır
dışarı attı '

Geçerli URL adresi
sayfa:

'
. $url;?>

Çıktı:





Komut dosyasını sunucudan çalıştırdıktan sonra aşağıdaki çıktı görünecektir. $_SERVER['HTTPS'] değeri üzerinde yerel sunucu için. Yani çıktı gösterir http geçerli URL için protokol.



Örnek 2: Üçlü operatör kullanarak geçerli sayfanın URL'sini görüntüleyin

Aşağıdaki örnek, üçlü operatörü kullanarak geçerli sayfanın tam URL'sini almanın yolunu gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun.

Eğer koşul, önceki örnekte, geçerli sayfanın URL'sinde hangi protokolün kullanıldığını bulmak için kullanılır. Aynı görev, bu komut dosyasında üçlü operatör kullanılarak yapılır. gitmiş) işlevi $_SERVER['HTTPS'] öğesinin bir küme olup olmadığını ve $_SERVER['HTTPS'] değerinin bir küme olup olmadığını kontrol etmek için kullanılır. üzerinde, o zaman üçlü operatör HTTPS'yi döndürür, aksi takdirde HTTP'yi döndürür. URL'nin diğer bölümleri, önceki örnekte olduğu gibi alınır ve yazdırılır.


// Geçerli url'nin protokolünü öğrenin
$ protokolü = ( gitmiş ($_SERVER['HTTP'ler']) && $_SERVER['HTTP'ler']
== 'üzerinde'?'https' : 'http');
// Geçerli sayfanın alan adını oku
$alanı = $_SERVER['HTTP_HOST'];
//İstenen kaynağı oku
$kaynak = $_SERVER['REQUEST_URI'];
// Tam URL adresini almak için tüm parçaları birleştirin
$url = $ protokolü.': //'.$alanı.$kaynak;
// Geçerli sayfanın URL adresini yazdır
dışarı attı '

Geçerli sayfanın URL adresi:

'
. $url;
?>

Çıktı:

Komut dosyasını sunucudan çalıştırdıktan sonra aşağıdaki çıktı görünecektir. $_SERVER['HTTPS'] değeri üzerinde yerel sunucu için. Böylece çıktı, geçerli URL için HTTP protokolünü gösterir.

Örnek 3: Bağlantı noktası numarasına göre geçerli sayfanın URL'sini görüntüleyin

Önceki iki örnekte, sayfanın geçerli URL'sinin protokolünü bulmak için $_SERVER['HTTPS'] değeri kullanılır ve URL ile birlikte hiçbir sorgu dizesi kullanılmaz. Aşağıdaki örnek, protokolü bulmak ve sorgu dizesiyle tam URL adresini almak için $_SERVER['SERVER_PORT'] değişkeninin nasıl kullanılabileceğini gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun.

Burada, protokolü bulmak için çoklu mantıksal koşullar ve üçlü operatör kullanılır. $_SERVER['HTTPS'] değeri boşsa veya kapalı, sonra geçerli URL'nin protokolünü bulmak için $_SERVER['SERVER_PORT'] değerini kontrol edecektir. $_SERVER['QUERY_STRING'] değişkeni, URL'den sorgu dizesi değerini almak için kullanılır.


// Geçerli url'nin protokolünü öğrenin
$ protokolü = ((! boş ($_SERVER['HTTP'ler']) && $_SERVER['HTTP'ler']
! = 'kapalı') || $_SERVER['SUNUCU PORTU'] == 443)?'https://' : 'http://';
// Geçerli sayfanın alan adını oku
$alanı = $_SERVER['HTTP_HOST'];
// İstenen kaynağı oku
$kaynak = $_SERVER['REQUEST_URI'];
// Sorgu dizesi değerini oku
$sorgu = $_SERVER['QUERY_STRING'];
// Tam URL adresini almak için tüm parçaları birleştirin
$url = $ protokolü.$alanı.$kaynak;
// Geçerli sayfanın URL adresini yazdır
dışarı attı '

Geçerli sayfanın tam URL adresi:

'
. $url;
// Sorgu dizesi bölümünü yazdır
dışarı attı '

Sorgu dizesi:

'
. $sorgu;
?>

Çıktı:

Yukarıdaki betiği sunucudan herhangi bir sorgu dizesi olmadan çalıştırdıktan sonra aşağıdaki çıktı görünecektir. URL'de sorgu dizesi sağlanmadı. Böylece çıktı boş sorgu dizesini gösterir.

Yukarıdaki betiği sunucudan sorgu dizesiyle çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Aşağıdaki çıktı, sorgu dizesiyle birlikte URL adresini ve sorgu dizesini ayrı ayrı gösterir.

Çözüm

Mevcut sayfanın tam URL'sini almanın farklı yolları, çeşitli örnekler kullanılarak bu öğreticide gösterilmektedir. URL'yi ve sorgu dizesini ayırmanın yolu da bu öğreticide gösterilmektedir. Umarım bu eğitim, okuyucuların PHP betiğini kullanarak mevcut sayfanın tam URL'sini okuma yolunu bilmelerine yardımcı olur.