PHP суперглобалните са вградени променливи, които могат да бъдат достъпни от всички обхвати.
PHP Super Globals (PHP Super Globals)
В този урок ще обясним всички супер глобали в PHP с примери. Прочетете, за да разберете.
PHP Super Globals: $GLOBALS
$GLOBALS superglobal се използва за достъп до глобални променливи от всяко поле (включително функции или методи) в PHP скрипта. PHP съхранява всички глобални променливи в масив, наречен $GLOBALS[index]. Индексът съдържа името на променливата. Следният пример показва как да използвате суперглобалната променлива $GLOBALS:
$number1 = 50;
$number2 = 20;
function addition(): int
{
return $GLOBALS[ 'number3' ] = $GLOBALS[ 'number2' ] + $GLOBALS[ 'number1' ];
}
echo addition();
// Çıktı: 70PHP Super Globals: $_REQUEST
PHP $_REQUEST е PHP superglobal, използван за събиране на данни от 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>В горния пример създадохме формуляр, който връща данни с метода post. Разрешихме му да връща данните на същата страница с $_SERVER['PHP_SELF']. Проверихме, че заявката, идваща със суперглобалния $_SERVER['REQUEST_METHOD'], е заявка за публикуване. След това безопасно присвоихме данните от входа с име fname със стойността на name към променливата $name със суперглобалния $_REQUEST, използвайки функцията htmlspecialchars(). Проверихме дали променливата $name е празна или не с PHP if условието. Ако е празен, отпечатваме изхода "Без име", в противен случай отпечатваме данните от променливата $name.
PHP Super Globals: $_POST
PHP $_POST е PHP superglobal, използван за събиране на данни от HTML формата чрез метода 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>В горния пример създадохме формуляр, който връща данни с метода post. Разрешихме му да връща данните на същата страница с $_SERVER['PHP_SELF']. Проверихме, че заявката, идваща със суперглобалния $_SERVER['REQUEST_METHOD'], е заявка за публикуване. След това безопасно присвоихме данните от входа с име fname със стойността на name към променливата $name с $_POST superglobal, използвайки функцията htmlspecialchars(). Проверихме дали променливата $name е празна или не с PHP if условието. Ако е празен, отпечатваме изхода "Без име", в противен случай отпечатваме данните от променливата $name.
PHP Super Globals: $_GET
PHP $_GET е PHP superglobal, използван за събиране на данни от HTML формата чрез метода GET. Можем също така да извлечем данните, изпратени с get в url с $_GET superglobal.
Получаване на данни от формуляр с PHP $_GET Super Global
В примера по-долу получихме данни от HTML формата с PHP $_GET superglobal.
<!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>В горния пример създадохме формуляр, който връща данни с метода post. Разрешихме му да връща данните на същата страница с $_SERVER['PHP_SELF']. Проверихме, че заявката, идваща със суперглобалния $_SERVER['REQUEST_METHOD'], е заявка за публикуване. След това безопасно присвоихме данните от входа с име fname със стойността на name към променливата $name с $_POST superglobal, използвайки функцията htmlspecialchars(). Проверихме дали променливата $name е празна или не с PHP if условието. Ако е празен, отпечатваме изхода "Без име", в противен случай отпечатваме данните от променливата $name.
Получаване на данни от URL с PHP $_GET Super Global
В примера по-долу извлякохме данни от URL адреса с PHP $_GET superglobal.
<!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>В примера по-горе, вместо да напишем името на вашия файл, получихме името на файла, използвайки $_SERVER superglobal. Сега нека обясним какво направихме в този пример. Създадохме HTML документ и дадохме параметъра име на файла get.php. Дадохме на параметъра име стойността "Onur Özden" и разделихме параметрите със знака '&'. След това създадохме параметъра на уебсайта и му дадохме стойност „onurozden.com.tr“. Отпечатахме текста „Щракнете тук“ върху етикет A. Стигайки до PHP частта, отпечатахме „Моето име“ с ехо и използвахме $_GET superglobal с оператора за конкатенация, за да извлечем и отпечатаме данните на параметъра с име. Отново, използвайки оператора за сливане, отпечатахме " и моя уебсайт ". Използвахме отново оператора за конкатенация и получихме данните от параметъра на уебсайта с $GET superglobal и ги отпечатахме.
PHP Super Globals: $_SERVER
$_SERVER superglobal е PHP суперглобална променлива, която съдържа информация за заглавки, пътища и местоположения на скриптове. В примера по-долу показваме как да използвате $_SERVER superglobal.
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'];В горния пример дефинирахме променливи с имена $number1 и $number2 и им дадохме стойности от тип number. След това дефинирахме функция, наречена add, която връща стойност от тип данни int. Казахме, че в $GLOBALS superglobal имената на променливите се съхраняват като индекси. Създадохме променливата, като създадохме индекс с име number3. Ние присвоихме тази променлива сумата от променливата $number2 и променливата $number1, до която получихме достъп от глобалната област с $GLOBALS superglobal. След това върнахме тази стойност с return и прекратихме функцията. Като последна стъпка извеждаме стойността в нашата функция add() с ехо.
Всички употреби на PHP $_SERVER Super Global
| $_SERVER['PHP_SELF'] | Връща името на файла на изпълнения скрипт. |
| $_SERVER['GATEWAY_INTERFACE'] | Връща версията CGI (Common Gateway Interface), използвана от сървъра. |
| $_SERVER['SERVER_ADDR'] | Връща IP адреса на хост сървъра. |
| $_SERVER['SERVER_NAME'] | Връща името на главния сървър. |
| $_SERVER['SERVER_SOFTWARE'] | Връща идентификационния текст на сървъра (като Apache/2.2.24). |
| $_SERVER['SERVER_PROTOCOL'] | Връща името и версията на информационния протокол (като HTTP/1.1). |
| $_SERVER['REQUEST_METHOD'] | Връща метода на заявка, използван за достъп до страницата (като POST, GET). |
| $_SERVER['REQUEST_TIME'] | Връща клеймото за време на началото на заявката (напр. 1377687496). |
| $_SERVER['QUERY_STRING'] | Ако страницата е достъпна чрез низ на заявка, тя връща низа на заявката. |
| $_SERVER['HTTP_ACCEPT'] | Връща заглавката за приемане от текущата заявка. |
| $_SERVER['HTTP_ACCEPT_CHARSET'] | Връща заглавката Accept_Charset от текущата заявка (като utf-8,ISO-8859-1). |
| $_SERVER['HTTP_HOST'] | Връща заглавката на хоста от текущата заявка. |
| $_SERVER['HTTP_REFERER'] | Връща пълния URL адрес на текущата страница (не е надеждно, тъй като не всички потребителски агенти го поддържат). |
| $_SERVER['HTTPS'] | Проверява дали скриптът се запитва чрез защитен HTTP протокол (HTTPS). |
| $_SERVER['REMOTE_ADDR'] | Връща IP адреса, от който потребителят разглежда текущата страница. |
| $_SERVER['REMOTE_HOST'] | Връща името на хоста, откъдето потребителят разглежда текущата страница. |
| $_SERVER['REMOTE_PORT'] | Връща порта, използван на машината на потребителя за комуникация с уеб сървъра. |
| $_SERVER['SCRIPT_FILENAME'] | Връща абсолютния път на текущо изпълнявания скрипт. |
| $_SERVER['SERVER_ADMIN'] | Връща стойността, дадена на директивата SERVER_ADMIN в конфигурационния файл на уеб сървъра (ако вашият скрипт се изпълнява на виртуален хост, това ще бъде стойността, дефинирана за този виртуален хост) (като some@onurozden.com.tr). |
| $_SERVER['SERVER_PORT'] | Връща порта на сървърната машина, използван от уеб сървъра за комуникация (като 80). |
| $_SERVER['SERVER_SIGNATURE'] | Връща версията на сървъра и името на виртуалния хост, добавени към генерираната от сървъра страница. |
| $_SERVER['PATH_TRANSLATED'] | Връща базирания на файловата система път към текущия скрипт. |
| $_SERVER['SCRIPT_FILENAME'] | Връща пътя към текущия скрипт. |
| $_SERVER['SCRIPT_URI'] | Връща URI на текущата страница. |



