PHP - koncepcje internetowe

Ta sesja pokazuje, jak PHP może zapewnić dynamiczną zawartość w zależności od typu przeglądarki, losowo generowanych liczb lub danych wejściowych użytkownika. Pokazał również, jak można przekierować przeglądarkę klienta.

Identyfikacja przeglądarki i platformy

PHP tworzy przydatne environment variables można to zobaczyć na stronie phpinfo.php, która została użyta do konfiguracji środowiska PHP.

Jedną ze zmiennych środowiskowych ustawianych przez PHP jest HTTP_USER_AGENT który identyfikuje przeglądarkę użytkownika i system operacyjny.

PHP udostępnia funkcję getenv (), która umożliwia dostęp do wartości wszystkich zmiennych środowiskowych. Informacje zawarte w zmiennej środowiskowej HTTP_USER_AGENT można wykorzystać do stworzenia dynamicznej zawartości odpowiedniej dla przeglądarki.

Poniższy przykład pokazuje, jak można zidentyfikować przeglądarkę klienta i system operacyjny.

NOTE- Funkcja preg_match () jest omawiana w sesji wyrażeń regularnych 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>

To daje następujący wynik na moim komputerze. Ten wynik może być inny dla twojego komputera w zależności od tego, czego używasz.

To da następujący wynik -

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

Wyświetlaj obrazy losowo

PHP rand()Funkcja służy do generowania liczby losowej. i Ta funkcja może generować liczby z podanym zakresem. Generator liczb losowych powinien być zaszczepiony, aby zapobiec generowaniu regularnego wzorca liczb. Osiąga się to za pomocąsrand() funkcja, która określa numer ziarna jako argument.

Poniższy przykład pokazuje, jak za każdym razem można wyświetlać inny obraz z czterech obrazów -

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

To da następujący wynik -

Korzystanie z formularzy HTML

Najważniejszą rzeczą, na którą należy zwrócić uwagę w przypadku formularzy HTML i PHP, jest to, że każdy element formularza na stronie HTML będzie automatycznie dostępny dla skryptów PHP.

Wypróbuj następujący przykład, umieszczając kod źródłowy w skrypcie 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>

To da następujący wynik -

  • Domyślna zmienna PHP $_PHP_SELF jest używany jako nazwa skryptu PHP i po kliknięciu przycisku „wyślij” zostanie wywołany ten sam skrypt PHP i wygeneruje następujący wynik -

  • Metoda = "POST" służy do wysyłania danych użytkownika do skryptu serwera. Istnieją dwie metody przesyłania danych do skryptu serwera, które są omówione w rozdziale PHP GET & POST .

Przekierowanie przeglądarki

PHP header()funkcja dostarcza nieprzetworzone nagłówki HTTP do przeglądarki i może służyć do przekierowania jej do innej lokalizacji. Skrypt przekierowujący powinien znajdować się na samej górze strony, aby uniemożliwić ładowanie jakiejkolwiek innej części strony.

Cel jest określony przez Location: nagłówek jako argument funkcji header()funkcjonować. Po wywołaniu tej funkcjiexit() Funkcja może być użyta do zatrzymania przetwarzania reszty kodu.

Poniższy przykład pokazuje, jak można przekierować żądanie przeglądarki do innej strony internetowej. Wypróbuj ten przykład, umieszczając kod źródłowy w skrypcie 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>

To da następujący wynik -