This article for you to share the knowledge of the string learning in PHP, the need for friends can refer to
Create
PHP supports 4 ways to create a string: single quotes, double quotes, heredoc
grammatical structure, and nowdoc
grammatical structure.
1. Single quotation marks
In single-quote strings, variables and special characters are not replaced by escapes, except for backslashes and single quotes themselves:
Echo ' Arnold once said: "I\ ' ll be back" '; # Arnold once said: "I'll be Back" echo ' you deleted c:\\*.*? '; # you deleted c:\*.*?
2. Double quotes
Ability to recognize variables and escape sequences in a string:
$juice = ' Apple '; Echo ' $juice juice. '; # Apple Juice.echo "Hello \nworld!"; #Hello #world!
3. heredoc
Grammatical structure
Similar to double-quoted strings. The end tag must be written in the head, cannot have indents and spaces, and there should be a semicolon at the end of the tag, and the variables between the tags can be parsed normally, but the function will not. Often used when the output contains a large number of HTML documents.
$str = ' Heredoc '; $html = <<<end<p class= "container" > <p class= "Row" > <p class= " Col-xs-4 "> <p> $str </p> </p> </p></p>end;echo $html #<p class=" Container "># <p class=" Row "># <p class=" col-xs-4 "># <p>heredoc</p># </p># </p>#</p>
4. nowdoc
Grammatical structure
heredoc
similar to the syntax structure string, but nowdoc
does not perform parsing operations on variables and escape sequences.
$str = ' Nowdoc '; $html = <<< ' END ' <p class= "container" > <p class= "Row" > <p class= " Col-xs-4 "> <p> $str </p> </p> </p></p>end;echo $str #<p class=" Container "># <p class=" Row "># <p class=" col-xs-4 "># <p> $str </p># < /p># </p>#</p>
String encoding
In PHP strings, each character is stored in one byte (in memory), which means that PHP can only support a 256 character set and therefore does not support Unicode.
The
string in PHP is implemented by a byte array plus an integer indicating the buffer length. There is no information on how to convert bytes into characters, as determined by the programmer. Since PHP does not specifically specify the encoding of the string, how exactly is the string encoded? The answer is that the string is encoded in the same way that the script file is encoded.
In general, although the Unicode character set is not supported in PHP, but the file supports UTF-8 encoding, most of the time there is no problem, but encountered the string encoding conversion when there is a problem, such as in a UTF-8 encoded PHP file, The number of characters (6) of the program output is not equal to the actual number of characters (2):
Echo strlen (' China '); # 6
mbstring provides functions for multibyte
strings that can help you with multibyte encoding in PHP. In addition, mbstring can encode and convert the possible character encodings to each other.
Therefore, when you need to manipulate the Unicode character set string, be sure to install the mbstring
extension and use the appropriate function instead of the native string function:
Echo Mb_strlen (' China ', ' UTF-8 '); # 2
mbstring Extensions Most of the functions need to be processed based on an encoding (internal code), be sure to use UTF-8 encoding uniformly, most of which can be in PHP. INI configuration.
For PHP string encoding issues, it is strongly recommended that:
PHP script file using UTF-8 no BOM encoding format;
String operations use mbstring
extended functions;
Database connection and storage using UTF-8 encoding;
The HTML document uses UTF-8 encoding.
String formatting
1. String removal
rtrim()
-Remove whitespace characters (or other characters) at the end of a string
ltrim()
-Remove whitespace characters (or other characters) at the beginning of a string
trim()
-Remove whitespace characters (or other characters) from the beginning and end of the string
$text = "\t\tthese is a few words:) ... \ n "; Echo RTrim ($text); # "\t\tthese is a few words:) ..." echo ltrim ($text); # "These is a few words:) ... \ n "echo trim ($text); # "These is a few words:) ..." $trimmed = Trim ($hello, "LD"); # "Hello Wor"
2. Format the string for output
nl2br()
-Insert HTML Wrap tags before all new lines in the string
printf()
-Output formatted string
sprintf()
-Write the formatted string to the variable
echo nl2br ("Hello \nworld"); #hello #worldprintf (' I need to pay $%.02LF ', 1.3568); # I need to pay $1.36$str = sprintf (' I need to pay $%.02lf ', 1.3568); Echo $str; # I need to pay $1.36
htmlspecialchars()
-Convert special characters to HTML entities
htmlentities()
-Converts a character to an HTML escape character
Echo htmlspecialchars ("<a href= ' test ' >Test</a>", ent_quotes); # <a href=& #039;test& #039;> Test</a>echo htmlentities ("A ' quote ' is <b>bold</b>"); # A ' Quote ' is <B>BOLD</B>
3. Format the string to store
stripslashes()
-Dereference a reference string
addslashes()
-Use a backslash to reference a string
$str = "Is your name o\ ' Reilly?"; echo stripslashes ($STR); # is your name O ' Reilly?echo addslashes ($STR); # is your name o\ ' Reilly?
4. Change the letter case of the string
strtolower()
-Convert a string to lowercase
strtoupper()
-Converts a string to uppercase
ucfirst()
-Converts the first letter of a string to uppercase
ucwords()
-Converts the first letter of each word in a string to uppercase
$str = "Mary had A Little Lamb and She loved It so"; Echo Strtolower ($STR); # Mary had a little lamb and she loved it Soecho Strtoupper ($STR); # MARY had A LITTLE LAMB and SHE loved IT so$foo = ' Hello world! '; $foo = Ucfirst ($foo); # Hello world! $foo = ucwords ($foo); # Hello world!
String joins and splits
1.explode()
Use one string to split another string:
$pizza = "Piece1 piece2 piece3 piece4 piece5 piece6"; $pieces = Explode ("", $pizza);p Rint_r ($pieces); # Array ([0] = Piece1 [1] = Piece2 [2] = Piece3 [3] = Piece4 [4] = = Piece5 [5] = = Piece6)
2.implode() 或 join()
Stitching the values of a one-dimensional array into a string:
$array = Array (' LastName ', ' email ', ' phone '), Echo implode (', ', $array); # Lastname,email,phone
3.substr()
Returns a substring of a string:
echo substr (' abcdef ', 1); # Bcdefecho substr (' abcdef ', 1, 3); # Bcdecho substr (' abcdef ',-1, 1); # f
string comparison
1.strcmp()
Binary Secure string Comparisons (case-sensitive):
Echo strcmp (' Jochen ', ' Jochen '); # 32, if STR1 is less than str2 returns < 0, if STR1 is greater than str2 returns > 0, if both are equal, 0 is returned.
2.strcasecmp()
Binary security comparison string (case insensitive):
Echo strcasecmp (' Jochen ', ' Jochen '); # 0
3.strnatcmp()
Compare strings using the Natural sorting algorithm:
echo strnatcmp (' img12.png ', ' img10.png '); # 1,
String Find and Replace
1.strstr()
Finds the first occurrence of a string and returns a string:
echo strstr (' name@example.com ', ' @ '); # @example. com
2.strpos()
Where to find the first occurrence of a string:
$hello = ' Hello World ', if (Strpos ($hello, ' H ')!== false) { echo ' find ';} else { echo ' No find ';}
3.str_replace()
Match the string and replace it:
$search = "World"; $replace = "Shanghai"; $subject = "Hello world!"; Echo Str_replace ($search, $replace, $subject); # Hello Shanghai
4.substr_replace()
Replace the string at the specified location:
$replace = "Shanghai"; $subject = "Hello world!"; Echo Substr_replace ($subject, $replace, 6); # Hello Shanghai
Regular expressions
1.preg_match()
To perform a regular expression match:
$email = ' 10001110@qq.com '; $pattern = "/^ ([a-za-z0-9]) + ([. a-za-z0-9_-]) *@ ([. a-za-z0-9_-]) + ([. a-za-z0-9_-]+) + ([. a-za-z0-9_-]) $/"; if (Preg_match ($pattern, $email, $match)) { echo ' matches success
2.preg_match_all()
Perform a global regular expression match:
$str = "Name: <b>john poul</b> <br> Title: <b>php guru</b>";p reg_match_all ("/<b> (. *) <\/b>/u ", $str, $result);p Rint_r ($result); # array ([0] = = Array ([0] = John Poul [1] = + PHP Guru) [1] = = Array ([0] = John Poul [1] = PHP Guru))
3.preg_split()
To delimit a string with a regular expression:
$keywords = Preg_split ("/[\s,]+/", "Hypertext language, Programming");p Rint_r ($keywords); # Array ([0] = hypertext [1 ] = language [2] = programming)
4.preg_replace()
Perform a search and replace of a regular expression:
$str = ' foo o '; Echo preg_replace ('/\s\s+/', ' ', $str); # ' foo o ' $count = 0;echo preg_replace (Array ('/\d/', '/\s/'), ' * ', ' XP 4 to ',-1, $count); # Xp***toecho $count; # 3