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

PHP 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 на текущата страница.