آموزش مفاهیم وب در PHP
آموزش مفاهیم وب در PHP
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش مفاهیم وب در PHP خواهیم پرداخت.
این جلسه نشان می دهد که چگونه PHP می تواند محتوای پویا را با توجه به نوع مرورگر، اعداد ایجاد شده به صورت تصادفی یا ورودی کاربر ارائه دهد. همچنین نشان داد که چگونه می توان مرورگر مشتری را هدایت کرد.
شناسایی مرورگر و بستر های نرم افزاری
PHP متغیرهای مفید محیطی را ایجاد می کند که در صفحه phpinfo.php که برای راه اندازی محیط PHP استفاده شده است ، قابل مشاهده است.
یکی از متغیرهای محیطی که توسط PHP تنظیم شده است HTTP_USER_AGENT است که مرورگر و سیستم عامل کاربر را مشخص می کند.
PHP یک تابع ()getenv را برای دستیابی به مقدار تمام متغیرهای محیط فراهم می کند. از اطلاعات موجود در متغیر محیط HTTP_USER_AGENT می توان برای ایجاد محتوای پویا متناسب با مرورگر استفاده کرد.
مثال زیر نشان می دهد که چگونه می توانید یک مرورگر مشتری و سیستم عامل را شناسایی کنید.
توجه – تابع ()preg_match در PHP جلسه بیان منظم مورد بحث قرار گرفته است.
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
<html> <body> <?php function getBrowser() { $u_agent = $_SERVER['HTTP_USER_AGENT']; $bname = 'Unknown'; $platform = 'Unknown'; $version = ""; //First get the platform? if (preg_match('/linux/i', $u_agent)) { $platform = 'linux'; }elseif (preg_match('/macintosh|mac os x/i', $u_agent)) { $platform = 'mac'; }elseif (preg_match('/windows|win32/i', $u_agent)) { $platform = 'windows'; } // Next get the name of the useragent yes seperately and for good reason if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) { $bname = 'Internet Explorer'; $ub = "MSIE"; } elseif(preg_match('/Firefox/i',$u_agent)) { $bname = 'Mozilla Firefox'; $ub = "Firefox"; } elseif(preg_match('/Chrome/i',$u_agent)) { $bname = 'Google Chrome'; $ub = "Chrome"; }elseif(preg_match('/Safari/i',$u_agent)) { $bname = 'Apple Safari'; $ub = "Safari"; }elseif(preg_match('/Opera/i',$u_agent)) { $bname = 'Opera'; $ub = "Opera"; }elseif(preg_match('/Netscape/i',$u_agent)) { $bname = 'Netscape'; $ub = "Netscape"; } // finally get the correct version number $known = array('Version', $ub, 'other'); $pattern = '#(?<browser>' . join('|', $known) . ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#'; if (!preg_match_all($pattern, $u_agent, $matches)) { // we have no matching number just continue } // see how many we have $i = count($matches['browser']); if ($i != 1) { //we will have two since we are not using 'other' argument yet //see if version is before or after the name if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){ $version= $matches['version'][0]; }else { $version= $matches['version'][1]; } }else { $version= $matches['version'][0]; } // check if we have a number if ($version == null || $version == "") {$version = "?";} return array( 'userAgent' => $u_agent, 'name' => $bname, 'version' => $version, 'platform' => $platform, 'pattern' => $pattern ); } // now try it $ua = getBrowser(); $yourbrowser = "Your browser: " . $ua['name'] . " " . $ua['version'] . " on " .$ua['platform'] . " reports: <br >" . $ua['userAgent']; print_r($yourbrowser); ?> </body> </html> |
این نتیجه زیر را در دستگاه ایجاد می کند. این نتیجه ممکن است بسته به آنچه استفاده می کنید برای رایانه شما متفاوت باشد.
این نتیجه زیر را ایجاد می کند –
1 2 3 |
Your browser: Google Chrome 54.0.2840.99 on windows reports: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 |
نمایش تصاویر به صورت تصادفی
از تابع ()PHP rand برای تولید یک عدد تصادفی استفاده می شود. این تابع می تواند اعداد با یک محدوده مشخص را تولید کند. مولد اعداد تصادفی باید بذر شود تا از ایجاد الگوی منظم اعداد جلوگیری شود. این با استفاده از تابع()srand به دست می آید که تعداد دانه را به عنوان استدلال مشخص می کند.
مثال زیر نشان می دهد که چگونه می توانید از چهار تصویر هر بار تصویر متفاوتی نمایش دهید
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 |
<html> <body> <?php srand( microtime() * 1000000 ); $num = rand( 1, 4 ); switch( $num ) { case 1: $image_file = "/php/images/logo.png"; break; case 2: $image_file = "/php/images/php.jpg"; break; case 3: $image_file = "/php/images/logo.png"; break; case 4: $image_file = "/php/images/php.jpg"; break; } echo "Random Image : <img src=$image_file />"; ?> </body> </html> |
این نتیجه زیر را ایجاد می کند –
استفاده از فرم های HTML
مهمترین نکته ای که هنگام برخورد با فرم های HTML و PHP باید به آن توجه کنید این است که هر عنصر فرم در یک صفحه HTML به طور خودکار در اسکریپت های PHP شما در دسترس خواهد بود.
مثال زیر را با قرار دادن کد منبع در اسکریپت test.php امتحان کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php if( $_POST["name"] || $_POST["age"] ) { if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) { die ("invalid name and name should be alpha"); } echo "Welcome ". $_POST['name']. "<br />"; echo "You are ". $_POST['age']. " years old."; exit(); } ?> <html> <body> <form action = "<?php $_PHP_SELF ?>" method = "POST"> Name: <input type = "text" name = "name" /> Age: <input type = "text" name = "age" /> <input type = "submit" /> </form> </body> </html> |
این نتیجه زیر را ایجاد می کند –
متغیر پیش فرض PHP $ _PHP_SELF برای نام اسکریپت PHP استفاده می شود و وقتی روی دکمه “submit” کلیک می کنید ، اسکریپت PHP فراخوانی می شود و نتیجه زیر را ایجاد می کند –- از روش = “POST” برای ارسال اطلاعات کاربر به اسکریپت سرور استفاده می شود. دو روش ارسال داده به اسکریپت سرور وجود دارد که در فصل PHP GET & POST مورد بحث قرار گرفته است.
تغییر مسیر مرورگر
تابع ()header هدرهای HTTP خام را به مرورگر عرضه می کند و می تواند برای هدایت مجدد آن به مکان دیگری مورد استفاده قرار گیرد. اسکریپت تغییر مسیر باید در بالای صفحه باشد تا از بارگیری قسمت دیگری از صفحه جلوگیری کند.
هدف توسط عنوان: آرگومان تابع ()header تعیین می شود. بعد از فراخوانی این تابع می توان از تابع ()exit برای جلوگیری از تجزیه و تحلیل بقیه کد استفاده کرد.
مثال زیر نشان می دهد که چگونه می توانید درخواست مرورگر را به صفحه وب دیگری هدایت کنید. با قرار دادن کد منبع در اسکریپت test.php این مثال را امتحان کنید.
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 |
<?php if( $_POST["location"] ) { $location = $_POST["location"]; header( "Location:$location" ); exit(); } ?> <html> <body> <p>Choose a site to visit :</p> <form action = "<?php $_SERVER['PHP_SELF'] ?>" method ="POST"> <select name = "location">. <option value = "http://www.tutorialspoint.com"> Tutorialspoint.com </option> <option value = "http://www.google.com"> Google Search Page </option> </select> <input type = "submit" /> </form> </body> </html> |
این نتیجه زیر را ایجاد می کند –
دیدگاه شما