ورود / ثبت نام سبد خرید 0
در این درس به شما نشان خواهیم داد که زبان php چطور، بر اساس نوع مرورگر کاربر ، محتوای پویا تولید میکند ، اعداد رندم تولید میکند و یا داده ها را از کاربران دریافت میکند . همچنین در این درس به شما یاد میدهیم چطور در مرورگر کاربر عمل ریدایرکت ( ارجاع به آدرس دیگری ) انجام دهید .
آموزش زبان php از روی متن برای بسیاری از افراد لذت بخش است ولی اگر شما از جمله افرادی هستید که با آموزش ویدیویی راحت هستید از دوره ی آموزشی پی اچ پی استاد نیک زاد استفاده کنید.
زبان php تعدادی متغیرهای محیطی یا environment variables دارد که بسیار پرکاربرد میباشند و این توابع را میتوانید در صفحه ی phpinfo.php ببینید .
یکی از بهترین متغیرهای محیطی که در php استفاده میشود HTTP_USER_AGENT میباشد که اطلاعات مرورگر و همچنین سیستم عامل کاربر را در اختیار شما قرار میدهد .
زبان برنامه نویسی php یک تابعی دارد به نام getenv که مقدار تمام متغیرهای محیطی را با آن میتوانید به دست بیاورید که با استفاده از متغیر HTTP_USER_AGENT میتوانیم داده هایی را مطابق با نوع مرورگر کاربر تولید کنیم.
در مثالی که در زیر وجود دارد شما میبینید که چطور مرورگر و سیستم عامل کاربر را پیدا میکنیم .
نکته : درمورد تابع preg_match در درس های بعدی مفصل آموزش خواهیم داد.
<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>
این مثال خروجی زیر را برای من داشت و ممکن است خروجی برای هر شخصی متفاوت باشد چون ممکن است سیستم عامل و مرورگر و ... شما با من متفاوت باشد :
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 هستید.بعد از اتمام آموزش زبان php مدرس این دوره پیشنهاد کرده است که آموزش mvc در زبان php را حتما جدی بگیرید و آنرا یاد بگیرید.
در زبان برنامه نویسی php یک تابع وجود دارد به نام rand که یک عدد رندم را برای شما انتخاب میکند . این تابع میتواند در محدوده ی مشخصی عددی را بعنوان عدد تصادفی برای شما انتخاب بکند .
از تابع srand() برای تعریف منبع تولید اعداد تصادفی استفاده میکنیم .
srand برای آماده کردن تابع تولید اعداد تصادفی یا rand هست شما مثلا به اون بگید نقطه شروع اعداد تصادفی که تولید خواهند شد .مثلا شما اگر یک بار پارامتر ورودی srand را یک عدد ثایت مثل 8 بدهید و بعد rand اجرا بشه و دو باره srand را با پارامتر 8 اجرا کنید بعد از اون rand را بزنید نتیجه rand اول با rand دوم یکسان خواهد بود. بنابراین باید پارامتر ورودی srand را متفاوت داد تا اعداد ایجاد شده توسط rand متفاوت بشوند برای این کار معمولا زمان سیستم را به عنوان ورودی srand می دهند و مثلا 100 تا عدد تصادفی تولید می کنند و دو باره اگه بخواهیم اجرا کنیم چون زمان جلو رفته پارامتر srand متفائت خواهد بود در نتیج اعداد تصادفی ایجاد شده هم متفاوت خواهند بود
مثال زیر تصویری را بصورت تصادفی انتخاب میکند :
<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 در زبان php این است که شما میتوانید با تمام المان های یک فرم html توسط php کار کنید و تعامل داشته باشید.
مثال زیر یک فرم میسازد :
<?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 از دوره ی آموزش ویدیویی php استاد نیک زاد استفاده کنید.
در php تابعی به نام header() وجود دارد که هدر درخواست های http را تامین می کند با این تابع میتوانید به مرورگر بگویید که به یک ادرس دیگر مراجعه کن .
آدرس url جدید که میخواهید به آنجا ریدایرکت شوید بعد از Location: درون تابع header() قرار میگیرید .
میتوانید بعد از ارجاع به ادرس دیگر از تابع exit استفاده کنید تا کدهای بعدی اجرا نشود .
مثال :
<?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.avasam.ir"> Tutorialspoint.com </option> <option value = "http://www.google.com"> Google Search Page </option> </select> <input type = "submit" /> </form> </body> </html>
و خروجی کدهای بالا :
اتمام درس
یکی از نکته های اساسی در یادگیری زبان برنامه نویسی php یادگیری آن بصورت پروژه محور است. اکثر افراد تا وارد برنامه نویسی یک پروژه ی عملی و واقعی در محیط php نشوند آنرا بخوبی درک نمیکنند.پیشنهاد ما دوره ی آموزش پروژه محور ساخت سیستم هتلداری با زبان php است.
محصولات برگزیده مناسب شما