جلسه نهم PHP : آموزش کامل زبان برنامه نویسی پی اچ پی مقدماتی تا پیشرفته
مقدمه
در این مقاله از آموزش PHP با جلسه نهم PHP در خدمت شما هستیم. در قسمت قبل در جلسه هشتم PHP بحث توابع درPHP را پیش بردیم. که موضوعاتی نظیر سینتکس توابع، تفاوت پارامتر و آرگومان در توابع، بررسی عبارت return در تابع و همچنین دستورات include و require بررسی شد. اما در جلسه نهم PHP قصد داریم تا مبحثی که در جلسه چهارم PHP تحت عنوان آرایهها مطرح شد را کمی گسترش دهیم. فهرست مطالب زیر در این جلسه بررسی خواهند شد.
مرتب کردن آرایه ها در PHP
همیشه راهی برای مرتبسازی وجود دارد. مقادیر یک آرایه را میتوان بهصورت الفبایی و یا اعداد از کوچک به بزرگ و یا بالعکس مرتبسازی نمود. در لیست زیر از جلسه نهم PHP توابعی برای مرتب کردن آرایهها وجود دارد.
- ()sort: آرایهها را با روند افرایشی مرتب میکند.
- ()rsort: آرایهها را با روند کاهشی مرتب میکند.
- ()asort: آرایههای متناظر را با روند افزایشی و بر اساس ارزش آنها مرتب میکند.
- ()ksort: آرایههای متناظر را با روند افزایشی و بر اساس کلید آنها مرتب میکند.
- ()arsort: آرایههای متناظر را با روند کاهشی و بر اساس ارزش آنها مرتب میکند.
- ()krsort: آرایههای متناظر را با روند کاهشی و بر اساس کلید آنها مرتب میکند.
طرز کار همهی این توابع همانند هم میباشند. بهاختصار از ()sort مثالی میآوریم.
تابع () sort در PHP
مثال زیر از جلسه نهم PHP را بررسی کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $student = array("morteza", "pouria", "mehdi"); sort($student); $length = count($student); for ($x = 0; $x < $length; $x++) { echo $student[$x]; echo "<br>"; } // Outputs // mehdi // morteza // pouria |
نکته 1: مشاهده میکنید که در خروجی از مثال بالا، چینش عناصر آرایه مرتب شدند.
متغیرهای superglobal در PHP
این نوع از متغیرها اولین بار در نسخه 4.1 PHP ارائه شدند. متغیرهای superglobal صرفنظر از اینکه کجای برنامه از آنها استفاده میشود، همیشه دردسترس هستند. مبحث محدودهی متغیرها در PHP را به خاطر بیاورید. قبلا دراینمورد صحبت شده بود. محدودهی متغیرها برای superglobal ها معنا ندارد.
در زیر، لیست ِ superglobal های PHP را مشاهده میکنید.
- GLOBALS$
- SERVER_$
- REQUEST_$
- POST_$
- GET_$
- FILES_$
- ENV_$
- COOKIE_$
- SESSION_$
در ادامه جلسه نهم PHP برخی از این متغیرهای از پیشتعریفشده را بررسی میکنیم.
متغیر SERVER_$ در PHP
SERVER_$ نیز یکی از متغیرهای سراسری در PHP است که نگهدارنده اطلاعاتی در مورد سربرگ ،مسیرها، و مکان اسکریپت میباشد. ورودیهای این آرایه توسط وب سرور ایجاد میشوند. برای مثال SERVER[‘SCRIPT_NAME’]_$ مسیر فایل PHP شما را نمایش میدهد.
مثال زیر از جلسه نهم PHP ، روش استفاده از سوپرگلوبال SERVER_$ را نشان میدهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<?php echo "<pre>"; echo "<br> HTTP_USER_AGENT \t= "; echo $_SERVER['HTTP_USER_AGENT']; echo "<br> PHP_SELF \t\t= "; echo $_SERVER['PHP_SELF']; echo "<br> SCRIPT_NAME \t\t= "; echo $_SERVER['SCRIPT_NAME']; echo "<br> SERVER_NAME \t\t= "; echo $_SERVER['SERVER_NAME']; echo "<br> HTTP_HOST \t\t= "; echo $_SERVER['HTTP_HOST']; echo "<br> HTTP_REFERER \t\t= "; echo $_SERVER['HTTP_REFERER']; echo "<br> SCRIPT_FILENAME \t= "; echo $_SERVER['SCRIPT_FILENAME']; echo "<br> SERVER_ADDR \t\t= "; echo $_SERVER['SERVER_ADDR']; echo "<br> REMOTE_ADDR \t\t= "; echo $_SERVER['REMOTE_ADDR']; echo "<br> REMOTE_PORT \t\t= "; echo $_SERVER['REMOTE_PORT']; echo "<br> SERVER_PORT \t\t= "; echo $_SERVER['SERVER_PORT']; echo "<br> REQUEST_URI \t\t= "; echo $_SERVER['REQUEST_URI']; echo "</pre>"; |
خروجی کد بالا:
نکته 1 : از “\t” برای ایجاد tab استفاده میکنیم.
نکته 2: تگ pre برای نمایش بهتر، استفاده میشود. یکبار بدون آن تست کنید.
نکته 3: تمامی موارد بالا در جدول زیر توضیح دادهشدهاند.
توضیحات | کد |
---|---|
مشخصات مرورگر را بر میگرداند. | SERVER[‘HTTP_USER_AGENT’]_$ |
نام فایل شما که اسکریپت در حال اجرا روی آن است را نمایش میدهد. | SERVER[‘PHP_SELF’]_$ |
مسیر اسکریپت جاری را در خروجی برمیگرداند. | SERVER[‘SCRIPT_NAME’]_$ |
نام سرور میزبان را برمیگرداند. | SERVER[‘SERVER_NAME’]_$ |
با توجه به درخواست جاری، سربرگ هاست را برمیگرداند. احتمالاً برای شما مقدار localhots نمایش داده میشود. من در سیستم شخصی خودم این مورد را تغییر دادهام. | SERVER[‘HTTP_HOST’]_$ |
URL کامل صفحه جاری را برمیگرداند. | SERVER[‘HTTP_REFERER’]_$ |
آدرس کامل اسکریپتی که در حال اجرا است را برمیگرداند. | SERVER[‘SCRIPT_FILENAME’]_$ |
آیپی سرور میزبان (host server) را برمیگرداند. ازآنجاییکه شما هم احتمالاً همانند من، روی لوکال هاست کدها را تمرین میکنید، IP شما هم مقدار 127.0.0.1 را دارد. | SERVER[‘SERVER_ADDR’]_$ |
آیپی کاربر از مکانی که در حال مشاهدهی صفحهی شما است را نمایش میدهد. که مشخصاً این مورد روی لوکالهاست همان مقدار 127.0.0.1 را برمیگرداند. | SERVER[‘REMOTE_ADDR’]_$ |
پورتی که در دستگاه کاربر برای اتصال به سرور استفادهشده است را نمایش میدهد. | SERVER[‘REMOTE_PORT’]_$ |
شماره پورتی را که روی سرور برای ارتباطات وب سرور استفاده میشود را برمیگرداند. (همانند ۸۰) | SERVER[‘SERVER_PORT’]_$ |
مقدار URI فایل اسکریپت جاری را برمیگرداند. | SERVER[‘SCRIPT_URI’]_$ |
نام میزبانی را که کاربر از آن صفحه جاری را میبیند را برمیگرداند. | SERVER[‘REMOTE_HOST’]_$ |
این دستور URI موجود در را برمیگرداند. | SERVER[‘REQUEST_URI’]_$ |
نکته1: دستور SERVER[‘REQUEST_URI’]_$ مقدار URI صفحه را برمیگرداند.
یعنی اگر آدرس کامل URL ما http://site1.exp/dashbord/profile باشد، مقدار URI ما /dashbord/profile خواهد بود.
مثالی از SERVER[‘REQUEST_URI’]_$
فرض کنید که قرار است برای کاربر یک پنل کاربری طراحی شود. بنابراین وقتی کاربر وارد آدرس /dashbord و یا آدرس /dashbord/profile میشود، باید صفحاتی جداگانه برای آن طراحی شود. حال تابعی بنویسید که مقدار URI صفحه را در خروجی چاپ کند.
1 2 3 4 5 6 7 8 9 |
<?php function router() { $request_uri = $_SERVER['REQUEST_URI']; var_dump($request_uri); exit; } router(); |
خروجی کد بالا در آدرس: http://site1.exp/dashbord
خروجی کد بالا در آدرس: http://site1.exp/dashbor/profile
متغیر GLOBALS$ در PHP
GLOBALS$ یک متغیر Superglobals در PHP است که برای برای دسترسی به متغیرها از هر نقطه در اسکریپت PHP (و نیز از داخل توابع و یامتدها) ، استفاده میشود. PHP همه متغیرهای سراسری را در آرایه ای به نام [GLOBALS[index $ ذخیره میکند که index نام متغیر رانگهداری میکند.
مثال زیر از جلسه نهم PHP روش استفاده از متغیر سراسری GLOBALS $ را نشان میدهد:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?> |
در مثال بالا از جلسه نهم PHP، از آنجایی که z یکی از متغیرهای داخل آرایه $GLOBALSمی باشد، در خارج از تابع نیز قابل دسترسی است.
SERVER_$ نیز یکی از متغیرهای سراسری در PHP است که نگهدارنده اطلاعاتی در مورد سربرگ، مسیرها، و مکان اسکریپت میباشد. مثال زیر از جلسه نهم PHP روش استفاده از برخی از عناصر در SERVER_$ را نشان میدهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php 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']; ?> |
باقی متغیر های superglobal را بعد از مبحث فرم ها به شما آموزش خواهیم داد.
تبریک میگم شما موفق شدید تا جلسه نهم PHP را پشت سر بگذارید. ادامه ی آموزش در روز های آتی قرار خواهد گرفت.
1 Comment
Join the discussion and tell us your opinion.
ممنون