在使用单引号字符串时,字符串中需要转义的特殊字符只有反斜杠和单引号本身,单引号不能识别插入的变量。相比双引号,这种定义字符串的方式不但直观而且速度快。
echo 'hello world \\ test'; // hello world \ test
// 转义单引号
echo 'let\'s go'; // let's go
echo 'This is a test'; // This is a test
$a = 'hello';
// 单引号不会解析变量$a的值
echo '$a world'; // $a world
echo "$a world"; // hello world
?>
使用双引号定义的字符串可以解析其中的变量。双引号还有一些转义序列,如表1-1所示。
echo "I dont't like\ it\\"; // I dont't like\ it\
echo "It takes me \$10.25 \t"; // It takes me $10.25
$name = 'test';
echo "\"$name\" is important"; // "test" is important
?>
PHP中使用“.”来连接两个字符串。
$str1 = 'hello';
$str2 = ' world';
echo $str1.$str2; // hello world
?>
字符串常用处理函数包括:字符串的查找、替换、截取、去空格、转义等。
可以使用以下函数来改变字符串的大小写:
$str = 'hello world, php'."\n";
echo ucfirst($str); // Hello world, php
echo ucwords($str); // Hello World, Php
echo strtoupper($str); // HELLO WORLD, PHP
$str2 = "Hello World";
echo strtolower($str2); // hello world
echo lcfirst($str2); // hello World
?>
查找字符串中某部分字符串首次出现的位置(不区分大小写)
语法如下:
int stripos(string $haystack, string $needle[, int $offset = 0])
参数说明:
$c = 'c';
$str1 = 'xyz';
$str2 = 'ABC';
$pos1 = stripos($str1, $c);
$pos2 = stripos($str2, $c);
var_dump($pos1); // bool(false)
var_dump($pos2); // int(2)
?>
查找字符串首次出现的位置(区分大小写)。
语法如下:
mixed strpos(string $haystack, mixed $needle [, int $offset = 0])
**说明:**和strrpos()、strripos不一样,strpos的偏移量不能是负数。
$find = 'c';
$f1 = 'C';
$str = 'AbcaBC';
$pos1 = strpos($str, $find);
$pos2 = strpos($str, $f1);
var_dump($pos1); // int(2)
var_dump($pos2); // int(5)
?>
计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
语法如下:
int strripos(string $haystack, string $needle [, int $offset = 0])
**说明:**负数偏移量将使得查找从字符串的起始位置开始,到offset位置为止。
$f1 = 'w';
$f2 = 'e';
$str = 'Hello World';
$pos1 = strripos($str, $f1);
$pos2 = strripos($str, $f2);
var_dump($pos1); // int(6)
var_dump($pos2); // int(1)
?>
计算指定字符串在目标字符串中最后一次出现的位置。
语法如下:
int strrpos(string $haystack, string $needle [, int $offset = 0])
**说明:**如果是负数的偏移量,将会导致查找在字符串结尾处开始的计数位置处结束。
$f1 = 'c';
$f2 = 'C';
$str = 'ABCabcCBA';
$pos1 = strrpos($str, $f1);
$pos2 = strrpos($str, $f2);
$pos3 = strrpos($str, $f2, -5);
var_dump($pos1); // int(5)
var_dump($pos2); // int(6)
var_dump($pos3); // int(2)
?>
str_ireplace()和str_replace使用新的字符串替换原来字符串中指定的特定字符串,str_replace区分大小写,str_ireplace()不区分大小写。两者语法相似,str_ireplace()的语法如下:
mixed str_ireplace(mixed $search, mixed $replace, mixed $subject [, int &$count])
**说明:**该函数返回一个字符串或数组。该字符串或数组将subject中全部的search用replace替换(忽略大小写)之后的结果。参数count表示执行替换的次数。
$str = 'hello, world, hello, php';
$replace = 'hi';
$search = 'hello';
echo str_ireplace($search, $replace, $str); // hi, world, hi, php
?>
substr_replace()函数的语法如下:
mixed substr_replace(mixed $string, mixed $replacement, mixed $start [, mixed $length])
说明:
$str = 'hello, world, java, php, python, hello';
$replace = 'hi';
echo substr_replace($str, $replace, 0, 6); // hi world, java, php, python, hello
echo "\n";
echo substr_replace($str, $replace, 0, -1); // hio
echo "\n";
echo substr_replace($str, $replace, -1, 6); // hello, world, java, php, python, hellhi
echo "\n";
echo substr_replace($str, $replace, 0); // hi
?>
PHP中使用substr截取字符串,其语法如下:
string substr(stirng $string, int $start [, int $length])
说明:
$str = 'Seek the truth from facts.This is a test!';
echo substr($str, 1)."\n"; // eek the truth from facts.This is a test!
// 从末尾开始数第三个位置,开始截取
echo substr($str, -3)."\n"; // st!
echo substr($str, -2, 1)."\n"; // t
echo substr($str, 15)."\n"; // from facts.This is a test!
var_dump(substr($str, 50)); // bool(false)
?>
在PHP中,
- 使用trim()函数可以去除字符串首尾两边的空格或特殊字符
- 使用ltrim()函数可以去除字符串 左边的空格或特殊字符
- 使用rtrim()函数可以去除字符串右边的空格或特殊字符
string trim(string $str [, string $character_mask]) string ltrim(string $str [, string $character_mask]) string rtrim(string $str [, string $character_mask])
其中,$str是待处理的字符串,$character_mask是过滤字符串。如果不指定这两个参数,trim()将去除以下字符:
- " ",普通空格符
- “\t”,制表符
- “\n”,换行符
- “\r”,回车符
- “\0”,空字符串
- “\x0B”,垂直制表符
$text = "\t\tThese are a few words:)... ";
$binary = "\x09Example string\x0A";
$hello = "Hello World!";
echo trim($text)."\n"; // These are a few words:)...
echo rtrim($text)."\n"; // These are a few words:)...
echo rtrim($text, " \t.")."\n"; // These are a few words:)
echo ltrim($hello, "H")."\n"; // ello World!
// 删除$binary末端的ASCII码控制字符(包含0~31)
echo rtrim($binary, "\x00..\x1F")."\n"; // Example string
?>
These are a few words:)...
These are a few words:)...
These are a few words:)
ello World!
Example string
PHP中使用strlen()函数返回字符串的长度,该函数的语法如下:
int strlen(string $string)
$str1 = 'abcdefg';
echo strlen($str1); // 7
$str2 = ' ab cd ';
echo strlen($str2); // 7
/**
* PHP不同编码下,一个中文占的字符长度不同。
* 1.GBK/gb2312:2个
* 2.UTF-8/unicode:3个
*/
$str3 = '这是个测试';
echo strlen($str3); // 15
?>
使用mb_strlen()函数统计字符串长度。需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题。
mb_strlen ( string `$str` [, string `$encoding` = mb_internal_encoding() ] )
PHP中使用addslashes()函数转义字符串。该函数的语法格式如下:
string addslashes(string $str)
**说明:**该函数返回转移后的字符串,在一些特殊字符前加了转移符号“\”。这些字符是:单引号、双引号、反斜杠和NULL。
$str = "I'm fine.Thank you";
echo addslashes($str); // I\'m fine.Thank you
?>
stripslashes可以还原经过addslashes转义后的字符串。
$str = "I'm fine.Thank you";
echo addslashes($str); // I\'m fine.Thank you
echo stripslashes(addslashes($str)); // I'm fine.Thank you
?>
使用str_repeat()函数可以重复一个字符串,语法如下:
string str_repeat(string $input, int $multiplier)
**说明:**该函数返回input重复multiplier次后的结果。multiplier必须大于等于0。如果multiplier设置为0,则返回空字符串。
echo str_repeat("^_^", 5); // ^_^^_^^_^^_^^_^
?>
可使用str_shuffle()函数来随机打乱一个字符串,其语法如下:
string str_shuffle(string $str)
**说明:**str_shuffle()函数打乱一个字符串,使用任何一种可能的排序方案。
$str = 'abcdefg123';
echo str_shuffle($str)."\n";
echo str_shuffle($str)."\n";
echo str_shuffle($str)."\n";
echo str_shuffle($str)."\n";
?>
132bfdeagc
dfc132geba
ge1f2d3cab
cdeag2f3b1
可以使用explode()函数将一个字符串分割成另一个字符串,其语法如下:
array explode(string $delimiter, string $string [, int $limit])
**说明:**此函数返回由字符串组成的数组,每一个元素都是 s t r i n g 的 子 串 , 它 们 被 字 符 串 d e l i m i t e r 作 为 边 界 点 分 割 出 来 。 string的子串,它们被字符串delimiter作为边界点分割出来。 string的子串,它们被字符串delimiter作为边界点分割出来。delimiter表示分割字符,如果设置了limit参数且是正数,则返回的数组最多包含limit个元素,而最后那个元素将包含$string剩余的部分。如果limit参数为负数,则返回除最后的-limit个元素外的所有元素。如果limit为0,则会被当作1。
$color = "red green blue";
$colors = explode(" ", $color);
print_r($colors);
$input = 'hello, world';
print_r(explode(', ', $input));
?>
Array
(
[0] => red
[1] => green
[2] => blue
)
Array
(
[0] => hello
[1] => world
)
参考链接:
https://www.cnblogs.com/ryanzheng/p/8285113.html
https://www.jb51.net/article/163832.htm
往期文章: