PHP super globals متغیرهای داخلی هستند که می توان از همه حوزه ها به آنها دسترسی داشت.

PHP Super Globals (PHP Super Globals)

در این درس تمام ابر جهانی ها در PHP را با مثال توضیح می دهیم. ادامه مطلب را بخوانید تا متوجه شوید.

PHP Super Globals: $GLOBALS

superglobal $GLOBALS برای دسترسی به متغیرهای سراسری از هر زمینه (شامل توابع یا متدها) در اسکریپت PHP استفاده می شود. PHP همه متغیرهای سراسری را در آرایه‌ای به نام $GLOBALS[index] ذخیره می‌کند. ایندکس نام متغیر را نگه می دارد. مثال زیر نحوه استفاده از متغیر superglobal $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'] ارسال می‌شود، یک درخواست پست است. سپس، با استفاده از تابع htmlspecialchars() با خیال راحت داده‌های ورودی به نام fname را با مقدار نام به متغیر $name با $_REQUEST superglobal اختصاص دادیم. ما بررسی کردیم که آیا متغیر $name با شرط if PHP خالی است یا خیر. اگر خالی باشد، خروجی «No name» را چاپ می کنیم، در غیر این صورت داده های متغیر $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'] ارسال می‌شود، یک درخواست پست است. سپس، با استفاده از تابع htmlspecialchars() داده‌های ورودی به نام fname را با مقدار نام به متغیر $name با $_POST superglobal اختصاص دادیم. ما بررسی کردیم که آیا متغیر $name با شرط if PHP خالی است یا خیر. اگر خالی باشد، خروجی «No name» را چاپ می کنیم، در غیر این صورت داده های متغیر $name را چاپ می کنیم.

PHP Super Globals: $_GET

PHP $_GET یک PHP superglobal است که برای جمع آوری داده ها از فرم HTML از طریق متد GET استفاده می شود. همچنین می‌توانیم داده‌های ارسال شده با get را در url با superglobal $_GET بازیابی کنیم.

دریافت داده از فرم با 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'] ارسال می‌شود، یک درخواست پست است. سپس، با استفاده از تابع htmlspecialchars() داده‌های ورودی به نام fname را با مقدار نام به متغیر $name با $_POST superglobal اختصاص دادیم. ما بررسی کردیم که آیا متغیر $name با شرط if PHP خالی است یا خیر. اگر خالی باشد، خروجی «No name» را چاپ می کنیم، در غیر این صورت داده های متغیر $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 دادیم. به پارامتر name مقدار "Onur Özden" دادیم و پارامترها را با علامت "&" از هم جدا کردیم. پس از آن، پارامتر وب سایت را ایجاد کردیم و به آن مقدار "onurozden.com.tr" دادیم. ما متن "Click Here" را روی برچسب A چاپ کردیم. با ورود به قسمت PHP، "My name" را با echo چاپ کردیم و از superglobal $_GET با عملگر الحاق برای بازیابی و چاپ داده‌های پارامتر با نام نام استفاده کردیم. دوباره، با استفاده از عملگر ادغام، " and my website " را چاپ کردیم. ما دوباره از عملگر الحاق استفاده کردیم و داده های پارامتر وب سایت را با superglobal $GET دریافت کردیم و آن را چاپ کردیم.

PHP Super Globals: $_SERVER

$_SERVER superglobal یک متغیر 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 تعریف کردیم و به آنها مقادیری از نوع عدد دادیم. سپس، تابعی به نام افزودن تعریف کردیم که مقداری از نوع داده int را برمی گرداند. گفتیم که در superglobal $GLOBALS نام متغیرها به عنوان شاخص نگه داشته می شود. ما متغیر را با ایجاد یک شاخص به نام number3 ایجاد کردیم. ما به این متغیر مجموع متغیر $number2 و $number1 را اختصاص دادیم که از ناحیه جهانی با superglobal $GLOBALS به آنها دسترسی پیدا کردیم. سپس این مقدار را با return برگرداندیم و تابع را خاتمه دادیم. به عنوان آخرین مرحله، مقدار را در تابع add() با echo خروجی می دهیم.

همه موارد استفاده از PHP $_SERVER Super Global

$_SERVER['PHP_SELF']نام فایل اسکریپت اجرا شده را برمی گرداند.
$_SERVER['GATEWAY_INTERFACE']نسخه CGI (رابط دروازه مشترک) استفاده شده توسط سرور را برمی گرداند.
$_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']اگر صفحه از طریق یک query string قابل دسترسی باشد، رشته query را برمی گرداند.
$_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 صفحه فعلی را برمی گرداند.