Php Chapter 4 Training

765 views

Published on

Training for the PHP Certification by Zend. Chapter 4. Strings and patterns, plus some minor Regular Expressions

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
765
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
39
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Php Chapter 4 Training

  1. 1. Strings And Patterns Orlando PHP Meetup Zend Certification Training April 2009
  2. 2. 3 Ways to Make Strings <ul><li>Single Quote – Only ‘ needs to be escaped. No variable interpolation. </li></ul><ul><li>Double Quote – Variable interpolation and special escape tags. </li></ul><ul><ul><li>$var = “This $string needs {$string}s. ”; </li></ul></ul><ul><li>Heredoc (<<<) for multi-line strings </li></ul><ul><ul><li>$string = <<<EOSTRING this is a $interpreted “string” on multiple $lines[10] EOSTRING </li></ul></ul>
  3. 3. String Functions <ul><li>Strings as arrays: Don’t forget: zero-based! </li></ul><ul><ul><li>$var = “abcdef”; $a = $var[0]; </li></ul></ul><ul><li>strlen($string) returns length in bytes </li></ul><ul><li>strtr($string, $find, $replace) - Transform </li></ul>
  4. 4. Searching <ul><li>Most string functions have case sensitive and case insensitive versions. (PHP5 added a lot of insensitive versions) </li></ul><ul><li>Most parameters can also be arrays of strings, operated on over the array. </li></ul><ul><li>strcmp($st1, $st2) returns 0 if equal </li></ul><ul><li>strpos($haystack, $needle) returns integer or FALSE if not found. Be sure to compare === </li></ul><ul><li>strstr($haystack, $needle) returns rest of string, starting at needle, or FALSE </li></ul>
  5. 5. Replacing <ul><li>str_replace($find, $replace, $haystack) </li></ul><ul><ul><li>Replaces all instances of $find with $replace </li></ul></ul><ul><ul><li>Really handy with $find as array and/or $replace as array </li></ul></ul><ul><li>substr($string, $start, $length) </li></ul><ul><ul><li>Returns a slice of the string </li></ul></ul><ul><ul><li>$start may be negative, for starting from end. </li></ul></ul><ul><li>substr_replace($haystack, $replacement, $start, $length) </li></ul><ul><ul><li>Only replaces a slice of the haystack </li></ul></ul>
  6. 6. Formatting <ul><li>number_format($num, $decimals, $decimal_point, $thousands_sep) </li></ul><ul><li>Generic Formatting – sprintf() </li></ul><ul><ul><li>Format String defines type (string, decimal), length, sign, special handling. </li></ul></ul><ul><ul><li>%d (decimal), %f (float), %s (string) </li></ul></ul><ul><ul><li>Modifiers: %4.3f shows 1234.56 </li></ul></ul><ul><ul><li>sprintf(‘%4.3f is %d long’, 1234.563, 7) = “1234.56 is 7 long” </li></ul></ul>
  7. 7. Perl Regular Expressions <ul><li>A pattern matching language that defines what to find when you don’t know exactly what you are looking for. </li></ul><ul><li>Match patterns </li></ul>Character class. Ex: [a-zA-z0-9s] [] Word (a-z or underline) w Digit. Equal to [0-9] d Whitespace (space, tab) S is non-whitespace s End of line $ Beginning of line ^ Any character except newline .
  8. 8. Regular Expressions 2 <ul><li>Quantifiers </li></ul><ul><li>Patterns are wrapped in delimeters. Usually // but can be any character but backslash </li></ul><ul><li>Sub expressions </li></ul><ul><ul><li>Parentheses around sub-matches </li></ul></ul><ul><ul><li>/abc(def[0-9])+ghi/ will match abcdef1ghi or abcdef1def2ghi </li></ul></ul>Match the pattern between minimum and maximum times. {min,max} Zero or one time ? One or more times + Zero or more times *
  9. 9. Regular Expression Functions <ul><li>preg_match($pattern, $haystack, $matches) </li></ul><ul><ul><li>Fills $matches array with strings from $pattern </li></ul></ul><ul><ul><li>Returns FALSE on no match </li></ul></ul><ul><li>preg_replace($pattern, $replace, $haystack) </li></ul><ul><ul><li>For each pattern, replace match(es) with $replace </li></ul></ul><ul><ul><li>If $replace is an array it will use each match to use one element from the array </li></ul></ul>
  10. 10. Summary <ul><li>Strings are the most flexible of core data types. Can hold test or binary data. </li></ul><ul><ul><li>Read the documentation to find string functions that do what you need. </li></ul></ul><ul><ul><li>Use “simple” string functions for search and replace when you can. </li></ul></ul><ul><ul><li>Be careful of PHP5 only functions, like the case insensitive versions. </li></ul></ul><ul><ul><li>Regular expressions are powerful and there are often more than one way to match a pattern. </li></ul></ul>

×