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ı: 70PHP 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. |



