1 / 16

CHAPTER 10 ADVANCED PHP

1. CHAPTER 10 ADVANCED PHP. 2. USER-DEFINED FUNCTIONS. Return Values Any type may be returned, including objects and arrays, using the return If a function returns a reference, the name of the function must have a pre-appended ampersand function &newArray($x) { … } The Scope of Variables

hartt
Télécharger la présentation

CHAPTER 10 ADVANCED 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. 1 CHAPTER 10ADVANCED PHP

  2. 2 USER-DEFINED FUNCTIONS • Return Values • Any type may be returned, including objects and arrays, using the return • If a function returns a reference, the name of the function must have a pre-appended ampersand function &newArray($x) { … } • The Scope of Variables • An undeclared variable in a function has the scope of the function • To access a non-local variable, it must be declared to be global, as in global sum; • The Lifetime of Variables • Normally, the lifetime of a variable in a function is from its first appearance to the end of the function’s execution static sum = 0; # sum is a static variable

  3. 3 EXAMPLE – PHP FUNCTION <html> <body> <?php function add($x,$y) { $total = $x + $y; Return $total; } echo "1 + 16 = " . add(1,16) ?> </body> </html> The output of this script 1 + 16 = 17

  4. 4 EXAMPLE – PHP FUNCTION $big_sum = 0; function summer ($list){ global $big_sum; $sum = 0; foreach ($list as $value) $sum += $value; $big_sum += $sum; return $sum; } ……….. $ans1 = summer($list1); $ans2 = summer($list2); ………. Print (“The sum of all array elements is : $big_sum );

  5. 5 EXAMPLE – PHP FUNCTION • The following example will redirect the browser to the following URL: http://www.w3schools.com/: <?php //Redirect browser header("Location: http://www.w3schools.com/"); ?><html> <body>......</body> </html>

  6. 6 FORM HANDLING • Simpler with PHP than either CGI or servlets • Forms could be handled by the same document that creates the form, but that may be confusing • PHP particulars: • It does not matter whether GET or POST method is used to transmit the form data • PHP builds a variable for each form element with the same name as the element

  7. 7 EXAMPLE – PHP FORM • Look at the following example of an HTML form: <html> <body><form action="welcome.php" method="POST"> Enter your name: <input type="text" name="name" /> Enter your age: <input type="text" name="age" /> <input type="submit" /> </form></body> </html> • The example HTML page above contains two input fields and a submit button. When the user fills in this form and hits the submit button, the "welcome.php" file is called. <html> <body>Welcome <?php echo $_POST["name"]; ?>.<br /> You are <?php echo $_POST["age"]; ?> years old!</body></html>

  8. 8 FILES • PHP can: • Deal with any files on the server • Deal with any files on the Internet, using either http or ftp • Instead of filehandles, PHP associates a variable with a file, called the file variable (for program reference) • A file has a file pointer (where to read or write) $fptr = fopen(filename, use_indicator) Use indicators: r read only, from the beginning r+ read and write, from the beginning w write only, from the beginning (also creates the file, if necessary) w+ read and write, from the beginning (also creates the file, if necessary) a write only, at the end, if it exists (creates the file, if necessary) a+ read and write, read at the beginning, write at the end • Because fopen could fail, use it with die

  9. 9 FILES • Use file_exists(filename) to determine whether file exists before trying to open it • Use fclose(file_var) to close a file • Reading files • Read all or part of the file into a string variable $str = fread(file_var, #bytes) To read the whole file, use filesize(file_name) as the second parameter • Read the lines of the file into an array $file_lines = file(file_name) • Need not open or close the file • Read one line from the file $line = fgets(file_var, #bytes) • Reads characters until eoln, eof, or #bytes characters have been read

  10. 10 FILES • Reading files (continued) • Read one character at a time $ch = fgetc(file_var) • Control reading lines or characters with eofdetection using feof (TRUE for eof; FALSE otherwise) while(feof($file_var)) { $ch = fgetc($file_var); } • Writing to files $bytes_written = fwrite(file_var, string) • fwrite returns the number of bytes it wrote • Files can be locked (to avoid interference from concurrent accesses) with flock (just like Perl)

  11. 11 EXAMPLE – PHP FILES • The example below reads a file character by character, until the end of file is true: <?php if (!($f=fopen("welcome.txt","r"))) exit("Unable to open file."); while (!feof($f)) { $x=fgetc($f); echo $x; } fclose($f); ?>

  12. 12 COOKIES • Create a cookie with setcookie setcookie(cookie_name, cookie_value, lifetime) e.g., setcookie("voted", "true", time() + 86400); • Cookies must be created before any other HTML is created by the script • Cookies are obtained in a script the same way form values are gotten • There could be conflicts between GET, POST, and cookie variables • PHP puts all POST form variables in their own array (hash) , HTTP_POST_VARS • Ditto for GET form variables (HTTP_GET_VARS)

  13. 13 EXAMPLE – COOKIES • The following example sets a cookie named "uname" - that expires after ten hours. <?php setcookie("uname", $name, time()+36000); ?><html> <body><p> A cookie was set on this page! The cookie will be active when the client has sent the cookie back to the server. </p></body> </html>

  14. 14 EXAMPLE – COOKIES • The following example tests if the uname cookie has been set, and prints an appropriate message. <html> <body><?php if (isset($_COOKIE["uname"])) echo "Welcome " . $_COOKIE["uname"] . "!<br />"; else echo "You are not logged in!<br />"; ?></body> </html>

  15. 15 SESSION TRACKING • For session tracking, PHP creates and maintains a session tracking id • Create the id with a call to session_start with no parameters • Subsequent calls to session_start retrieves any session variables that were previously registered in the session • To create a session variable, use session_register • The only parameter is a string literal of the name of the session variable (without the dollar sign) • Example: count number of pages visited • Put the following code in all documents session_start(); if (!IsSet($page_number)) $page_number = 1; print("You have now visited $page_number"); print(" of pages <br />"); $page_number++; $session_register("page_number");

  16. 16 SERVER-SIDE INCLUDES • Server Side Includes (SSI) are used to create functions, headers, footers, or elements that will be reused on multiple pages. • You can insert the content of one file into another file before the server executes it, with the require() function. The require() function is used to create functions, headers, footers, or elements that will be reused on multiple pages. • The following example includes a header that should be used on all pages: <html> <body><?php require("header.htm"); ?><p> Some text </p><p> Some text </p></body></html>

More Related