Superglobale PHP to wbudowane zmienne, do których można uzyskać dostęp ze wszystkich zakresów.

PHP Super Globals (PHP Super Globals)

W tej lekcji wyjaśnimy na przykładach wszystkie superglobale w PHP. Czytaj dalej, aby się dowiedzieć.

PHP Super Globals: $GLOBALS

Superglobalna wartość $GLOBALS służy do uzyskiwania dostępu do zmiennych globalnych z dowolnego pola (w tym funkcji lub metod) w skrypcie PHP. PHP przechowuje wszystkie zmienne globalne w tablicy o nazwie $GLOBALS[indeks]. Indeks przechowuje nazwę zmiennej. Poniższy przykład pokazuje, jak używać zmiennej superglobalnej $GLOBALS:

$number1 = 50;
$number2 = 20;
function addition(): int
{
    return $GLOBALS[ 'number3' ] = $GLOBALS[ 'number2' ] + $GLOBALS[ 'number1' ];
}
echo addition();
// Çıktı: 70

PHP Super Globals: $_REQUEST

PHP $_REQUEST to superglobalny PHP używany do zbierania danych z formularza HTML.

<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
    Name: <input type="text" name="fname">
    <input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_REQUEST[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>

W powyższym przykładzie stworzyliśmy formularz zwracający dane metodą post. Włączyliśmy opcję zwracania danych na tej samej stronie za pomocą $_SERVER['PHP_SELF']. Sprawdziliśmy, że żądanie przychodzące z superglobalnym $_SERVER['REQUEST_METHOD'] jest żądaniem pocztowym. Następnie bezpiecznie przypisaliśmy dane z wejścia o nazwie fname o wartości name do zmiennej $name z superglobalną $_REQUEST za pomocą funkcji htmlspecialchars(). Sprawdziliśmy, czy zmienna $name jest pusta, czy nie, za pomocą warunku PHP if. Jeśli jest pusta, wypisujemy wynik „No name”, w przeciwnym razie wypisujemy dane zmiennej $name.

PHP Super Globals: $_POST

PHP $_POST to superglobalny PHP służący do zbierania danych z formularza HTML za pomocą metody POST.

<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
    Name: <input type="text" name="fname">
    <input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_POST[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>

W powyższym przykładzie stworzyliśmy formularz zwracający dane metodą post. Włączyliśmy opcję zwracania danych na tej samej stronie za pomocą $_SERVER['PHP_SELF']. Sprawdziliśmy, że żądanie przychodzące z superglobalnym $_SERVER['REQUEST_METHOD'] jest żądaniem pocztowym. Następnie bezpiecznie przypisaliśmy dane z wejścia o nazwie fname o wartości name do zmiennej $name z superglobalną wartością $_POST za pomocą funkcji htmlspecialchars(). Sprawdziliśmy, czy zmienna $name jest pusta, czy nie, za pomocą warunku PHP if. Jeśli jest pusta, wypisujemy wynik „No name”, w przeciwnym razie wypisujemy dane zmiennej $name.

PHP Super Globals: $_GET

PHP $_GET to superglobalny PHP służący do zbierania danych z formularza HTML za pomocą metody GET. Możemy również pobrać dane wysłane za pomocą get w adresie URL za pomocą superglobalnego $_GET.

Pobieranie danych z formularza za pomocą PHP $_GET Super Global

W poniższym przykładzie otrzymaliśmy dane z formularza HTML z superglobalnym kodem PHP $_GET.

<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
    Name: <input type="text" name="fname">
    <input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'GET') {
    // input elementinden gelen veriyi değişkene ata
    $name = htmlspecialchars($_GET[ 'fname' ]);
    if (empty($name)) {
        echo 'Ad yok';
    } else {
        echo $name;
    }
}
?>
</body>
</html>

W powyższym przykładzie stworzyliśmy formularz zwracający dane metodą post. Włączyliśmy opcję zwracania danych na tej samej stronie za pomocą $_SERVER['PHP_SELF']. Sprawdziliśmy, że żądanie przychodzące z superglobalnym $_SERVER['REQUEST_METHOD'] jest żądaniem pocztowym. Następnie bezpiecznie przypisaliśmy dane z wejścia o nazwie fname o wartości name do zmiennej $name z superglobalną wartością $_POST za pomocą funkcji htmlspecialchars(). Sprawdziliśmy, czy zmienna $name jest pusta, czy nie, za pomocą warunku PHP if. Jeśli jest pusta, wypisujemy wynik „No name”, w przeciwnym razie wypisujemy dane zmiennej $name.

Pobieranie danych z adresu URL za pomocą PHP $_GET Super Global

W poniższym przykładzie pobraliśmy dane z adresu URL za pomocą superglobalnego PHP $_GET.

<!DOCTYPE html>
<html>
<body>
<a href="<?php
echo $_SERVER[ 'PHP_SELF' ] ?>?name=Onur%20Özden&website=www.onurozden.com.tr">Buraya Tıkla</a>
<?php
echo "Ben " . $_GET[ 'name' ] . " şu sitede PHP öğreniyorum: " . $_GET[ 'website' ];
?>
</body>
</html>

W powyższym przykładzie zamiast wpisywać nazwę pliku, otrzymaliśmy nazwę pliku za pomocą superglobalnego $_SERVER. Teraz wyjaśnijmy, co zrobiliśmy w tym przykładzie. Stworzyliśmy dokument HTML i nadaliśmy parametr name plikowi get.php. Parametrowi name nadaliśmy wartość „Onur Özden” i oddzieliliśmy parametry znakiem „&”. Następnie utworzyliśmy parametr strony internetowej i nadaliśmy mu wartość „onurozden.com.tr”. Wydrukowaliśmy tekst „Kliknij tutaj” na etykiecie A. Wracając do części PHP, wydrukowaliśmy „Moje imię” z echo i użyliśmy superglobalnego $_GET z operatorem konkatenacji, aby pobrać i wydrukować dane parametru o nazwie name. Ponownie, używając operatora scalania, wydrukowaliśmy „i moją stronę internetową”. Ponownie użyliśmy operatora konkatenacji, uzyskaliśmy dane parametru strony internetowej za pomocą superglobalnego $GET i wydrukowaliśmy je.

PHP Super Globals: $_SERVER

Superglobalna $_SERVER jest superglobalną zmienną PHP przechowującą informacje o nagłówkach, ścieżkach i lokalizacjach skryptów. W poniższym przykładzie pokazujemy, jak używać superglobalnego $_SERVER.

echo $_SERVER['PHP_SELF'];
echo '</br>';
echo $_SERVER['SERVER_NAME'];
echo '</br>';
echo $_SERVER['HTTP_HOST'];
echo '</br>';
echo $_SERVER['HTTP_REFERER'];
echo '</br>';
echo $_SERVER['HTTP_USER_AGENT'];
echo '</br>';
echo $_SERVER['SCRIPT_NAME'];

W powyższym przykładzie zdefiniowaliśmy zmienne o nazwach $number1 i $number2 i nadaliśmy im wartości typu number. Następnie zdefiniowaliśmy funkcję o nazwie dodawanie, która zwraca wartość typu danych int. Powiedzieliśmy, że w superglobalnym $GLOBALS nazwy zmiennych są przechowywane jako indeksy. Stworzyliśmy zmienną, tworząc indeks o nazwie numer3. Przyporządkowaliśmy tej zmiennej sumę zmiennych $number2 i $number1, do których uzyskaliśmy dostęp z obszaru globalnego za pomocą superglobalu $GLOBALS. Następnie zwróciliśmy tę wartość za pomocą return i zakończyliśmy funkcję. W ostatnim kroku za pomocą echa wyprowadzamy wartość z naszej funkcji dodawania().

Wszystkie zastosowania PHP $_SERVER Super Global

$_SERVER['PHP_SELF']Zwraca nazwę pliku wykonanego skryptu.
$_SERVER['GATEWAY_INTERFACE']Zwraca wersję CGI (Common Gateway Interface) używaną przez serwer.
$_SERVER['ADDR_SERWERA']Zwraca adres IP serwera hosta.
$_SERVER['NAZWA_SERWERA']Zwraca nazwę głównego serwera.
$_SERVER['SERVER_SOFTWARE']Zwraca tekst identyfikacyjny serwera (np. Apache/2.2.24).
$_SERVER['PROTOKÓŁ SERWERA']Zwraca nazwę i wersję protokołu informacyjnego (np. HTTP/1.1).
$_SERVER['REQUEST_METHOD']Zwraca metodę żądania używaną do uzyskania dostępu do strony (np. POST, GET).
$_SERVER['REQUEST_TIME']Zwraca znacznik czasu początku żądania (np. 1377687496).
$_SERVER['QUERY_STRING']Jeśli dostęp do strony odbywa się poprzez ciąg zapytania, zwracany jest ciąg zapytania.
$_SERVER['HTTP_ACCEPT']Zwraca nagłówek akceptacji z bieżącego żądania.
$_SERVER['HTTP_ACCEPT_CHARSET']Zwraca nagłówek Accept_Charset z bieżącego żądania (np. utf-8,ISO-8859-1).
$_SERVER['HTTP_HOST']Zwraca nagłówek hosta z bieżącego żądania.
$_SERVER['HTTP_REFERER']Zwraca pełny adres URL bieżącej strony (nie jest niezawodny, ponieważ nie wszystkie programy użytkownika go obsługują).
$_SERWER['HTTPS']Sprawdza, czy zapytanie do skryptu odbywa się za pośrednictwem bezpiecznego protokołu HTTP (HTTPS).
$_SERVER['REMOTE_ADDR']Zwraca adres IP, z którego użytkownik przegląda bieżącą stronę.
$_SERVER['REMOTE_HOST']Zwraca nazwę hosta, z którego użytkownik przegląda bieżącą stronę.
$_SERWER['REMOTE_PORT']Zwraca port używany na komputerze użytkownika do komunikacji z serwerem WWW.
$_SERVER['NAZWA PLIKU_SCRIPT']Zwraca bezwzględną ścieżkę aktualnie wykonywanego skryptu.
$_SERVER['SERVER_ADMIN']Zwraca wartość podaną dyrektywie SERVER_ADMIN w pliku konfiguracyjnym serwera WWW (jeśli skrypt działa na hoście wirtualnym, będzie to wartość zdefiniowana dla tego hosta wirtualnego) (np. Some@onurozden.com.tr).
$_SERWER['PORT_SERWERA']Zwraca port na serwerze używany przez serwer WWW do komunikacji (np. 80).
$_SERVER['SERVER_SIGNATURE']Zwraca wersję serwera i nazwę hosta wirtualnego dodane do strony wygenerowanej przez serwer.
$_SERVER['PATH_TRANSLATED']Zwraca ścieżkę systemu plików do bieżącego skryptu.
$_SERVER['NAZWA PLIKU_SCRIPT']Zwraca ścieżkę do bieżącego skryptu.
$_SERVER['SCRIPT_URI']Zwraca URI bieżącej strony.