PHP - वेब अवधारणाओं

यह सत्र दर्शाता है कि कैसे PHP ब्राउज़र प्रकार, यादृच्छिक रूप से उत्पन्न संख्या या उपयोगकर्ता इनपुट के अनुसार गतिशील सामग्री प्रदान कर सकता है। यह भी प्रदर्शित करता है कि क्लाइंट ब्राउज़र को पुनर्निर्देशित कैसे किया जा सकता है।

ब्राउज़र और प्लेटफ़ॉर्म की पहचान करना

PHP कुछ उपयोगी बनाता है environment variables यह phpinfo.php पृष्ठ में देखा जा सकता है जिसका उपयोग PHP वातावरण को सेटअप करने के लिए किया गया था।

PHP द्वारा निर्धारित पर्यावरण चर में से एक है HTTP_USER_AGENT जो उपयोगकर्ता के ब्राउज़र और ऑपरेटिंग सिस्टम की पहचान करता है।

PHP सभी पर्यावरण चर के मूल्य तक पहुंचने के लिए एक फ़ंक्शन गेटेनव () प्रदान करता है। HTTP_USER_AGENT वातावरण चर में निहित जानकारी का उपयोग ब्राउज़र के लिए उपयुक्त गतिशील सामग्री बनाने के लिए किया जा सकता है।

निम्न उदाहरण दर्शाता है कि आप क्लाइंट ब्राउज़र और ऑपरेटिंग सिस्टम की पहचान कैसे कर सकते हैं।

NOTE- फ़ंक्शन preg_match () PHP नियमित अभिव्यक्ति सत्र में चर्चा की गई है ।

<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 rand()फ़ंक्शन का उपयोग यादृच्छिक संख्या उत्पन्न करने के लिए किया जाता है। यह फ़ंक्शन किसी दिए गए रेंज में संख्याओं को उत्पन्न कर सकता है। यादृच्छिक संख्या जनरेटर उत्पन्न किया जाना चाहिए ताकि संख्याओं के एक नियमित पैटर्न को रोका जा सके। इस का उपयोग करके हासिल किया है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 फ़ॉर्म का उपयोग करना

HTML फॉर्म और PHP के साथ काम करते समय ध्यान देने वाली सबसे महत्वपूर्ण बात यह है कि HTML पेज में कोई भी फॉर्म एलिमेंट स्वचालित रूप से आपकी PHP स्क्रिप्ट के लिए उपलब्ध होगा।

स्रोत कोड को test.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_SELF PHP स्क्रिप्ट नाम के लिए उपयोग किया जाता है और जब आप "सबमिट" बटन पर क्लिक करते हैं तो उसी PHP स्क्रिप्ट को कॉल किया जाएगा और निम्नलिखित परिणाम उत्पन्न करेगा -

  • विधि = "POST" का उपयोग उपयोगकर्ता डेटा को सर्वर स्क्रिप्ट में पोस्ट करने के लिए किया जाता है। सर्वर स्क्रिप्ट में डेटा पोस्ट करने की दो विधियाँ हैं जिनकी चर्चा PHP GET और POST चैप्टर में की जाती है।

ब्राउज़र पुनर्निर्देशन

PHP header()फ़ंक्शन ब्राउज़र में कच्चे HTTP हेडर की आपूर्ति करता है और इसे किसी अन्य स्थान पर रीडायरेक्ट करने के लिए उपयोग किया जा सकता है। पृष्ठ के किसी अन्य भाग को लोड होने से रोकने के लिए पुनर्निर्देशन स्क्रिप्ट पृष्ठ के शीर्ष पर होनी चाहिए।

लक्ष्य द्वारा निर्दिष्ट किया गया है Location: शीर्षक के तर्क के रूप में header()समारोह। इस फ़ंक्शन को कॉल करने के बादexit() फ़ंक्शन का उपयोग बाकी कोड के पार्सिंग को रोकने के लिए किया जा सकता है।

निम्न उदाहरण प्रदर्शित करता है कि आप किसी अन्य वेब पेज पर ब्राउज़र अनुरोध को कैसे पुनर्निर्देशित कर सकते हैं। स्रोत कोड को test.php स्क्रिप्ट में डालकर इस उदाहरण को आज़माएँ।

<?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>

यह निम्नलिखित परिणाम का उत्पादन करेगा -