1 / 24

PHP

PHP. Introduction. History. Conceived in fall of 1994 PHP Version 1 in spring 1995 PHP Version 2 1995-1997 PHP Version 3 1997-2000 PHP Version 4 in Q2 2000 PHP Version 5 in Q2 2004 PHP Version 6 (still in planning) Development is a Community Effort. Statistics. PHP Usage.

raoul
Télécharger la présentation

PHP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP Introduction

  2. History • Conceived in fall of 1994 • PHP Version 1 in spring 1995 • PHP Version 2 1995-1997 • PHP Version 3 1997-2000 • PHP Version 4 in Q2 2000 • PHP Version 5 in Q2 2004 • PHP Version 6 (still in planning) • Development is a Community Effort

  3. Statistics

  4. PHP Usage Version 5 97.7% Version 4 2.3% Version 3 less than 0.1% W3Techs.com, 3 March 2014 Percentages of websites using various versions of PHP

  5. Platforms Platforms (current): UNIX (all variants) Win32 (NT/W95/W98/W2000) QNX MacOS (WebTen) OSX OS/2 BeOS Platforms (experimental): OS/390 AS/400 Server Interfaces: Apache module (UNIX,Win32) CGI fhttpd module ISAPI module (IIS, Zeus) NSAPI module (Netscape iPlanet) Java servlet AOLServer Roxen module thttpd module Server Interfaces Experimental): Apache 2.0 module

  6. Embedding HTML Embedding SGML style: <? code ?> XML style: <?php code ?> ASP style: <% code %> Javascript style: <script language="php"> code </script> <HTML><HEAD> <TITLE>Search results for "<?php print $query; ?>"</TITLE> </HEAD> <BODY> Traditional CGI programming #!/usr/bin/perl print "<HTML><HEAD>\n"; print " <TITLE>Search results for \"$query\"</TITLE>\n"; print "</HEAD>\n"; print "<BODY>\n";

  7. Switching modes Syntax and switching modes: <? if(strstr($HTTP_USER_AGENT,"MSIE")) { ?> <b>You are using Internet Explorer</b> <? } else { ?> <b>You are not using Internet Explorer</b> <? } ?> Output: You are not using Internet Explore

  8. Form Handeling <form action="action.php" method="POST"> Your name: <input type=text name=name><br> You age: <input type=text name=age><br> <input type=submit> </form> Action.php Hi <?echo $name?>. You are <?echo $age?> years old.

  9. C-like Syntax <? for ($loop = -5; $loop < 5; $loop++) { if ($i < 0) { echo "-"; } elseif ($i > 0) { echo "+"; } echo "$loop<BR>\n"; } while(--$loop) { switch($i % 2) { case 0: echo "Even<BR>\n"; break; case 1: echo "Odd<BR>\n"; break; } } do { echo "$loop<BR>"; } while (++$loop < 10); ?>

  10. Data types Basic data types numbers (integers and real) Decimal 1234, Octal 0777, Hex 0xff strings Double-quoted "abc", single-quoted 'abc' booleans true,false Dynamic typing Don't have to declare types Automatic conversion done Example <? echo 5 + "1.5" + "10e2"; ?> Output: 1006.5

  11. Arrays Ordered Arrays: <? $a[0] = 1; $a[1] = "foo"; $a[] = 1.57; ?> Associative Arrays: <? $catch_it['cat'] = "mouse"; $catch_it['dog'] = "cat"; ?> Manipulating Sorting: sort(), rsort(), ksort(), usort(), array_multisort() Traversal: reset(), end(), next(), each(), current(), key(), array_walk() Advanced: array_diff(), array_intersect(), array_merge(), array_merge_recursive(), array_slice(), array_splice() and lots more...

  12. Array Manipulation <?$arr = array(1,'foo',1.57,'cat'=>'mouse','dog'=>'mailman');?> <? PHP 3: while(list($k,$v)=each($arr)){ PHP 4: foreach( $arr as $k=>$v ) { echo "\$arr[$k] = $v<br>\n"; } ?> current($arr) 1 next($arr) foo current($arr) foo prev($arr) 1 end($arr) mailman current($arr) mailman key($arr) dog reset($arr) 1 each($arr) array(0,1) each($arr) array(1,'foo') each($arr) array(2,1.57) Output: $arr[0] = 1 $arr[1] = foo $arr[2] = 1.57 $arr[cat] = mouse $arr[dog] = mailman

  13. User functions <? function log_data($user, &$data) { mysql_query("INSERT INTO userdata VALUES ('". uniqid()."', '$user', '$data')"); } ?> Pass by reference <? log_data($PHP_AUTH_USER, $data); ?> Default values <? function header($title="Default Title") {?> <HTML><HEAD><TITLE> <? echo $title ?> </TITLE></HEAD><BODY><? } ?>

  14. OOP <?class Cart { var $items; function add_item($artnr, $num) { $this->items[$artnr] += $num; } } ?> Inheriting a class with a Constructor <?class NamedCart extends Cart { var $owner; function NamedCart($name) { $this->owner = $name; } } ?> Invocation: <? $cart = new NamedCart("PenguinGear"); $cart->add_item(170923, 2);?>

  15. Date/Time Functions Date Format Definition a Prints am or pm (lowercase A Prints AM or PM (uppercase) d Prints numerical day of month with leading zeros (01,02,….) D Prints day of week as 3 letter abbrev (Mon, Tue…) F Prints name of Month (January, February…) h Prints hout in 12 hour format H Prints hour in 24 hour format i Prints the minutes (00-59) j Prints day of month, no leading zeros l Prints day of week (Monday, Tuesday…) m Prints number of the month (1 to 12) M Prints 3 char, abbrev of month (Jan, Feb…) S Prints the suffix for day of month (st,nd,rd,th) U Prints number of seconds since Jan,1 1970 00:00:00 y Prints year as two digits Y Prints year as 4 digits z Prints out day of the year (222,303,350)

  16. Date/Time Functions $today = date(“M j, Y”); // Feb 11, 2002 $today = date(“F jS, Y”); // February 11th, 2002 $today = date(“D F d, h:ia”); // Mon February 11, 3:30 pm $today = date(“l F jS”); // Monday February 11th

  17. Date/Time functions <? echo date("M d, Y H:i:s", time()); ?> Sep 23, 2001 22:29:16 <? $dday = mktime(0, 0, 0, 7, 16, 2001); $diff = $dday - time(); $days = (int) ($diff / 86400); if ($days >= 1) { printf("Dmitry has been charged for %dday%s!<br>\n",$days,$days==1?'':'s'); } else { $hours = $diff / 3600; if ($hours >= 1) { printf("Dmitry has been in jail for %d hour%s!<br>\n",$hours,$hours==1?'':'s'); } else { echo "Dmitry is speaking at DefCon<BR>\n"; } } ?> Dmitry has been charged for 69 days! Converts between calendars (Julian, Gregorian, Mayan, etc)

  18. String Manipulation substr <? $str = "Fast String Manipulation"; echo substr($str,0,4) . substr($str,-9); ?> Fastipulation explode <? $a = explode(":", "This:string:has:delimiters."); while (list(,$value) = each($a)) { if (strcmp($value, "has") == 0) { echo "had "; } else echo $value." "; } ?> This string had delimiters.

  19. C-like file functions Reading from a file: <? $file = fopen("sample.txt", "r"); while (!feof($file)) { echo fgets($file, 1024), "<BR>"; } ?> Reading from a URL: <? $file = fopen("http://www.php.net/file.txt", "r"); ?> Writing to a file: <? $file = fopen("agent.log", "a"); fputs($file, $HTTP_USER_AGENT."\n"); ?>

  20. Sessions To start a session use session_start() and to register a variable in this session use session_register(). <?session_start(); session_register('my_var'); $my_var = 'Hello World'; You can check if a variable is already registered in a session using session_is_registered(): <?if (!session_is_registered("my_var")) { session_register("my_var"); } The $HTTP_SESSION_VARS array contains all the variables in the current session. If register_globals is enabled (which it is by default) then the session variables will automatically be available in the global namespace as well.

  21. Database Support SQL: Other: Adabas D Empress IBM DB2 Informix Ingres Interbase Frontbase mSQL Direct MS-SQL MySQL ODBC Ovrimos Oracle (OCI7,OCI8) PostgreSQL Raima Velocis Solid Sybase DB++ dBase filePro (read-only) dbm (ndbm, gdbm, Berkeley db)

  22. SQL Example PHP scripts that talk to databases all look similar to the code below. Connect to the database, select a database, send a query and loop through the results. <? mysql_pconnect("db.server.com","username","password"); mysql_select_db("products"); $result = mysql_query("SELECT * FROM details"); if ($result) { echo "<TABLE>\n"; echo "<TR><TH>Name</TH><TH>Description</TH></TR>\n"; while ($a = mysql_fetch_array($result)) { echo "<TR><TD>$a[name]</TD>", "<TD>$a[descr]</TD></TR>"; } echo "</TABLE>"; } else { echo "<P>Nothing to see here."; } ?>

  23. DB Abstraction A database abstraction layer is bundled with PHP 4. In the example below, the only thing you would need to change to use a different database is the odbc word on the third line. <?php require_once 'DB.php'; $db = DB::connect('odbc://user:pw@host/mydb'); $stmt = $db->prepare('SELECT * FROM comments'); $result = $db->execute($stmt); while($row = $db->fetchrow($result)) { while($row as $field => $value ) { echo "$field: $value<br>\n"; } } $db->disconnect(); ?>

  24. New in Version 4 Better OO (syntax fixes, op. overloading, superclass ref.) Modular, self-contained extensions Database abstraction layer (ala Perl's DBI) Reference counting Thread safe core More server modules through SAPI foreach() Output buffering Support for a real debugger Support for caching compiled code Support for an optimizer Java ties

More Related