PHP Strings

Posted Coding_Changes_LIfe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP Strings相关的知识,希望对你有一定的参考价值。

<?php
//1. how to use mail function
            //create short variable names
            $name=$_POST['name'];
            $email=$_POST['email'];
            $feedback=$_POST['feedback'];

            //set up some static information
            //$toaddress = "feedback@example.com";
            $toaddress = "luoxu@qq.com";

            $subject = "Feedback from web site";

            $mailcontent = "Customer name: ".filter_var($name)."
".
            "Customer email: ".$email."
".
            "Customer comments:
".$feedback."
";

            $fromaddress = "From: webserver@example.com";

            //invoke mail() function to send mail
            mail($toaddress, $subject, $mailcontent, $fromaddress);

//2.Trimming Strings chop(), ltrim(), trim()
            $str= "inert               air   ";
            echo $str;
            $str = trim($str);
            chop($str);
            echo "<br>";

//3.  htmlspecialchars()  conflict with html tags

             $new = htmlspecialchars("<a href='test'>Test</a>");
             echo $new; // &lt;a href='test'&gt;Test&lt;/a&gt;

             $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
             echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
            echo nl2br("foo isn't
 bar");  //foo isn't<br />bar  translate 
 to <br>
            echo nl2br(htmlspecialchars($feedback));  // it will display as newline(line feed)we should use them in this order
            echo htmlspecialchars(nl2br($feedback));  //it will display <br> literally
             echo '<hr>';

//4.output string
            $total =12.345565;
             echo "The total amount of order is $total";
             printf("The total amount of order is %s ",$total );  //output a formatted string
             printf("The total amount of order is %.2f ",$total );  //output a formatted string  12.35
             $s =sprintf("The total amount of order is %+s",$total ); // return a formatted string
            echo $s;
            echo '<hr>';

//5.String case function
            $str = "feedback from Website luoxu" ;
            echo  strtoupper($str);
            echo  strtolower($str);
            echo  ucfirst($str); //Feedback from Website luoxu
            echo  ucwords($str); //Feedback From Website Luoxu
            echo "<hr>";

//6.Joining and Spliting Strings with string function
            $email = "luoXU@qQ.coM";
            $emailArr= explode('@',$email);
            print_r($emailArr); //Array ( [0] => luoXU [1] => qQ.coM )
            if(strtolower($emailArr[1]) == 'qq.com'){
                $toaddress = 'bob@example.com';
            }
            array_walk($emailArr,"toLowerCase");
            function toLowerCase(&$value ){  // needs to add & in front of $value which will affect the $emailArr
                $value = strtolower($value);
            }
            print_r($emailArr); //Array ( [0] => luoxu [1] => qq.com )
            $newEmail = implode('@',$emailArr);
            echo $newEmail;  //luoxu@qq.com

//7.strtok()
            $str = 'Hello to all of Ukraine'; //split the string with ' ' delimiter as the first substring(token),
            // for the second token, you only need to pass the delimiter,
            //because strtok() keeps its own internal pointer to its place in the string
            echo strtok($str, ' ').' '.strtok(' ').' '.strtok(' '); //Hello to all

            $string = "This  is	an example
string";
            /* Use ' ' as tokenizing characters as well  */
            $tok = strtok($string, " ");

            while ($tok !== false) {
                echo "Word=$tok<br />";
                $tok = strtok(" ");
            }
            //Word=This
            //Word=is an
            //Word=example string

            /* Use tab and newline as tokenizing characters as well  */
            $tok = strtok($string, " 
	");

            while ($tok !== false) {
                echo "Word=$tok<br />";
                $tok = strtok(" 
	");
            }
            //Word=This
            //Word=is
            //Word=an
            //Word=example
            //Word=string
            echo "<hr>";

//8.substr()
            $test = 'Your customer service is excellent';  //string position starts from 0
            echo substr($test,1); //our customer service is excellent
            echo substr($test,-9); // excellent
            echo substr($test,5,4);  //cust
            echo substr($test,5,-13); //customer service
            echo $test[1]; //o, we can take a string as a  array
            echo "<hr>";

//9.Comparing Strings
            $str1 = "hello";
            $str2 = "hello";
            $str3 = "aello";
            $str4 = "Hello";
            echo strcmp($str1,$str2);  //0
            echo strcmp($str1,$str3).'<br>';  //return a number that is greater than 0 if str1 > str2 alphabetically
            echo strcmp($str1,$str4);  // H < h in ASCII a number that is greater than 0
            echo strcasecmp($str1,$str4).'<br>'; //0
            $str5 ='6';
            $str6 = '12';
            echo strcasecmp($str5,$str6); // result = str6 - str5 ASCII value    return 5
            echo strnatcmp($str5,$str6); // result = str6 - str5  integer value  return -1
            echo strlen($str1);  //5
            echo "<hr>";

//10. Matching and Replacing substring with string function
            $email  = 'name@example.com';
            $domain = strstr($email, '@');
            echo $domain; // prints @example.com

            $user = strstr($email, '@', true); // As of PHP 5.3.0
            echo $user; // prints name
            echo stristr($email,M); //me@example.com
            echo stristr($email,M,true); //na
            echo strchr($email,'e'); //e@example.com
            echo strpos($email,'m'); //2 starts from 0, the position first occurrence of the needle
            echo strrpos($email,'m'); //15  starts from the end , the position first occurrence of the needle reverse
            $result = strpos($email,'A');  //not found return false
            if($result === false){  //($result == false)is wrong,
                // because if we find 'n' in the string , it returns 0, however (0 == false) is true
                echo 'not found';
            }else{
                echo "Found at position:".$result;
            }
            echo "<hr>";

//11.str_replace();
            $bodytag = str_replace("%body%", "black", "|body text='%body%'|");
            echo $bodytag; //|body text='black'|
            $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
            $onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
            echo $onlyconsonants;//Hll Wrld f PHP
            //If search and replace are arrays, then str_replace() takes a value from each array and uses them to search and replace on subject.
            $phrase  = "You should eat fruits, vegetables, and fiber every day.";
            $healthy = array("fruits", "vegetables", "fiber");
            $yummy   = array("pizza", "beer", "ice cream");
            $newphrase = str_replace($healthy, $yummy, $phrase);
            echo $newphrase;  //You should eat pizza, beer, and ice cream every day

            $str = str_replace("ll", "", "good golly miss molly!", $count);
            echo $str; //good goy miss moy!
            echo $count; //2   2 of 'll' was matched
            echo "<hr>";

            //replace the substr of string with replacement.take substr_replace('bananas','xyzZ',1,2) as an example
            //1. get the substr of the string removing the parts from start to end(length=end-start)  substr = b(an)anas, an is removed
            //2. insert replacement into substr from start position 1. 
            echo substr_replace('bananas','xyz',1); //bxyz replace the substr of bananas starting from 1 with xyz
            echo substr_replace('bananas','xyzZ',1,2); //bxyzZanas replace the substr of bananas starting from 1 to 3(length is 2) with xyz
            echo substr_replace('bananas','xyz',-1); //bananaxyz replace the substr of bananas starting from 1 to 3(length is 2) with xyz
            echo substr_replace('bananas','xyz',-1,-2); //bananaxyzs
            echo substr_replace('bananas','xyz',4,1); //bbanaxyzas

//12.Regular Expression (better to use double quotation mark for strings) less sufficient than string function with similar functionality
       //https://regex101.com/ for testing regex
      //delimiter:  /pattern/    or #pattern#
         // using backslash  to escape / eg: /http:///
        //Character Class and Type
            //1.    /.at/ . means matching a single character, eg:cat,mat,#at,
                    //  /.[a-z]/ when a dot is used at the beginning or end of a Character class, it loses its special wildcardmeaning and becomes just a literal dot
            //2.    /[a-z]at/ [] means matching a a single  character in the square bracket that belongs to a-z ,eg: apple
            //3.    /[^a-z]at/ ^ (caret) in the square bracket means not to matching any of a single  character that belongs to a-z
            //4. [[:alnum:]] means alphanumeric character
            //4. [[:lower:]] means lower case letters
            //5. [[:alpha]1-5] means a class that may contain an alphabetically character or any of the digits from 1-5
     //Repetition  the three symbols should appear directly after the part of the expression that it applies to
            //1. *  means 0 or more times
            //2. +  means 1 or more times
            //3. ? means 0 or 1 times
            //eg: /[[:alnum:]+]/  means at least one alphanumeric character
      //Subexpression   using the parenthesis to group certain words (substring) is called inside ()
            //eg: /(very )*large/  means 'large', 'very large', 'very very large'
            //counted subExpression  using curly braces to show repeated times
            //eg: /(very){3}/  3 times exactly
            //eg: /(very){1,3}/ very can be repeated 1-3 times, it is 'very' , 'veryvery', 'veryveryvery'
            //eg: /(very){2,}/ very can be repeated at least 2 times, it is 'veryvery', 'veryveryvery', and so on
      //Anchoring to the beginning or end of a string
            //1. ^ caret outside of [] is used at the start of a regular expression to show that it must appear at the beginning of a searched string
            //2. $  at the end
            //eg: /^bob/ a string starts with bob
            //eg: /com$/ a string ends with com
            //eg: /^[a-z]$]/ a string contains a single character between a and z
     //Branching
            // /com|edu|net/ matched one of those three is ok

     //Matching literal special character
            //1. using backslash  to escape special character
            // "\\" => '\' => '' Matching one '' needs three \ to escape
            // "\$" => '$' => '$' Matching one '' needs three \ to escape
     //A Summary of Meta Characters used in PCRE regular expression
            //1. outside of square bracket :  ^ $ . | ( )  * + { } ?
            //2. inside of square bracket :  ^ -
     //Back Reference
           //1. /^([a-z]+) 1 black sheep /  "blarge blarge black sheep" matched

      // functions in PHP for PCRE regular expression
            //find substring
            preg_match('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
            print_r($matches);
            //Array ( [0] => Array ( [0] => foobarbaz [1] => 0 )
                //   [1] => Array ( [0] => foo [1] => 0 )
                // [2] => Array ( [0] => bar [1] => 3 )
                // [3] => Array ( [0] => baz [1] => 6 ) )
            preg_match('/(a)(b)*(c)/', 'ac', $matches);
            var_dump($matches);
            preg_match('/(a)(b)*(c)/', 'ac', $matches, PREG_UNMATCHED_AS_NULL);
            var_dump($matches);

            //replace substring
            $string = 'April 15, 2003';
            $pattern = '/(w+) (d+), (d+)/i';
            $replacement = '${1}1,$3';  //leave the first group(April),plus a literal 1 and ',' and the third group(2003)
            echo preg_replace($pattern, $replacement, $string); //April1,2003

            $string = 'The quick brown fox jumps over the lazy dog.';
            $patterns = array();
            $patterns[0] = '/quick/';
            $patterns[1] = '/brown/';
            $patterns[2] = '/fox/';
            $replacements = array();
            $replacements[2] = 'bear';
            $replacements[1] = 'black';
            $replacements[0] = 'slow';
            echo preg_replace($patterns, $replacements, $string); //The bear black slow jumps over the lazy dog.

            //splitting strings
            $address = 'username@example.com';
            $arr = preg_split('/.|@/', $address);
            print_r($arr);  //Array ( [0] => username [1] => example [2] => com )

以上是关于PHP Strings的主要内容,如果未能解决你的问题,请参考以下文章

PHP必用代码片段

PHP代码-psysh调试代码片段工具

片段中 ListView 的 setOnItemClickListener

超实用的php代码片段

比较有用的php代码片段

片段中ListView的setOnItemClickListener