PHP字符串
在本教程中,我们将学习PHP字符串。
什么是字符串?
简单来说,字符串是一个字符序列。
在PHP中,我们通过将字符括在单引号和双引号中来创建字符串。
以下是一些字符串示例。
$name = 'theitroad'; $country = "Shanghai";
注意!当我们将字符串括在单引号中时,PHP会将其用作完全类型。
另一方面,如果将字符串用双引号引起来,那么我们将获得一些额外的函数,例如在字符串内包括变量名和转义序列。
在下面的示例中,我们使用单引号。
$x = 10; //single quote string echo 'Value of x = ' . $x;
上面的代码将打印" x的值= 10"。
通过使用双引号,我们可以将变量$x放其中,如下所示。
$x = 10; //single quote string echo "Value of x = $x";
上面的代码将打印" x的值= 10"。
这是因为在双引号内遇到$x时,PHP会将其替换为该值。
获得相同结果的另一种方法是将变量括在花括号中。
$x = 10; //single quote string echo "Value of x = {$x}";
上面的代码还将生成相同的输出" x = 10的值"。
转义序列
转义序列是我们在字符串中使用的特殊字符。
它们具有特殊含义,并且以\字符开头。
例如,如果要显示水平制表符,则使用\ t转义序列。
以下是一些常用的转义序列。
转义序列 | 含义 |
---|---|
\' | 单引号 |
\" | 双引号 |
\\ | 反斜杠字符 |
\ n | 换行符 |
\r | 回车符 |
\t | 水平制表符 |
连接字符串
我们可以使用点运算符连接两个字符串。
以下是一些示例。
$first_name = "theitroad"; $last_name = "theitroad"; $full_name = $first_name . " " . $last_name; echo "Hello, I am {$full_name}.";
上面的代码将显示"您好,我是theitroad"。
字符串的长度-strlen()
我们使用strlen()
函数来查找字符串的长度,即字符串中的字符总数。
$month = "October"; $len = strlen($month); echo "Total number of characters = {$len}";
上面的代码将显示"字符总数= 7"。
访问字符串字符
字符串由一系列字符组成。
第一个字符从索引0开始。
例如,考虑以下字符串" Hello"。
它由5个字符组成。
第一个字符" H"位于索引0。
第二个字符" e"位于索引1。
最后一个字符" o"位于索引4。
为了在索引N处打印字符串的字符,我们编写$x [N],其中$x是保存字符串值的变量。
在下面的示例中,我们将打印第三个字符。
注意!第三个字符在索引2处。
$month = "October"; echo $month[2]; //output t
搜索字符串-strstr()
为了发现文本是否出现在给定的字符串中,我们使用了strstr()函数。
我们传递两个参数。
第一个参数是要搜索的字符串。
第二个参数是要搜索的文本。
如果找到了文本,则该函数将从所找到的文本的开头到字符串的结尾返回部分字符串。
否则,它将返回" false"。
$text = "lo"; $st = "Hello World!"; echo strstr($st, $text); //lo World!
函数strstr()区分大小写。
对于不区分大小写的函数,请使用stristr函数。
找到位置-strpos()
该函数将在字符串中搜索给定的文本,如果找到则返回该文本第一个字符的索引,否则将返回" false"。
$text = "el"; $string = "Hello World!"; echo strpos($string, $text);
上面的代码将打印1,因为在索引1处找到" el"。
请记住,索引从0开始。
函数strpos()区分大小写。
如果不区分大小写,请使用函数stripos。
从反向找到位置-strrpos()
此函数将从反向返回字符串中文本的第一个出现索引。
$text = "l"; $string = "Hello World!"; echo strrpos($string, $text);
上面的代码将打印9,因为它是字符串中倒数第一个出现的" l"的索引。
函数strrpos()区分大小写。
对于不区分大小写的函数,请使用strripos函数。
计算字符串中的文本-substr_count()
此函数将计算字符串中文本出现的总次数。
$text = "code"; $string = "I love code. You love code. We love code!"; echo substr_count($string, $text);
上面的代码将打印3。
如果文本是单词的一部分,那么也将考虑它。
$text = "he"; $string = "He and She"; echo substr_count($string, $text);
上面的代码将打印1。
这是因为单词" She"中存在" he"。
另请注意,由于大小写不同," He"不等于" he"。
搜索字符-strpbrk()
此函数检查字符串是否包含任何一个字符。
如果找到匹配项,则此函数将返回从第一个匹配字符到字符串结尾的字符串部分。
否则它将返回false。
$char = "@#!%"; $string = "Hello! This is a sample #string."; echo strpbrk($string, $char);
上面的代码将返回"!这是一个示例#string"。
因为$string包含char!和#。
替换所有出现的字符串-str_replace()
此函数将替换所有出现的一个字符串。
原始字符串保持不变,仅返回修改后的副本。
$string = "Java is a programming language. Java is awesome!"; $replace = "Java"; $replace_with = "PHP"; echo str_replace($replace, $replace_with, $string);
上面的代码将显示" PHP是一种编程语言。
PHP非常棒!"。
函数str_replace()区分大小写。
如果不区分大小写,请使用函数str_ireplace。
替换字符串的一部分-substr_replace()
此函数将替换目标字符串的特定部分。
原始字符串保持不变,仅返回修改后的副本。
$string = "8 A.M. radio!"; $replacement = "P.M."; $start_index = 2; echo substr_replace($string, $replacement, $start_index);
上面的代码将打印以下"晚上8点"。
因为它用$replacement" PM。
"替换了从索引2到字符串$string的所有字符。
substr_replace()从$start_index到字符串末尾用$replacement替换所有字符。
如果我们只想替换一部分字符串,则可以传递第四个参数。
$string = "8 A.M. radio!"; $replacement = "P.M."; $start_index = 2; $limit = 4; echo substr_replace($string, $replacement, $start_index, $limit);
上面的代码将开始替换索引2中的所有字符,并将仅用" P.M."放置4个字符。
因此,以上代码的输出将是"晚上8点收音机!"。
字符替换-strtr()
此函数采用3个参数,即要使用的字符串,要替换的字符串和要替换为的字符集。
原始字符串保持不变,仅返回修改后的副本。
$string = "Hello World!"; $target_characters_string = " !"; $replacement_characters = "-_"; echo strtr($string, $target_characters_string, $replacement_characters);
上面的代码将用"-"连字符和所有"!"替换所有""空格字符感叹号,下划线字符" "。
因此,上面的输出将为" Hello-World";
大写字母-strtoupper()
要将字符串的所有字符都转换为大写,我们使用strtoupper()函数。
$str = "Hello!"; echo strtoupper($str);
上面的代码将打印" HELLO!"。
小写字母-strtolower()
要将字符串的所有字符都转换为小写,我们使用strtolower()函数。
$str = "Hello!"; echo strtolower($str);
上面的代码将显示" hello!"。
使第一个字符大写-ucfirst()
此函数会将字符串的第一个字符转换为大写。
$str = "hello!"; echo ucfirst($str);
上面的代码将显示" Hello!"。
使第一个字符小写-lcfirst()
此函数会将字符串的第一个字符转换为小写。
$str = "HELLO!"; echo lcfirst($str);
上面的代码将显示" hELLO!"。
使每个单词的第一个字符大写-ucwords()
此函数会将字符串中每个单词的第一个字符转换为大写。
$str = "hello world!"; echo ucwords($str);
上面的代码将打印" Hello World!"。
修剪字符串-trim()
此函数将删除字符串开头和结尾的空格。
$str = " Hello World! "; echo trim($str);
上面的代码将打印" Hello World!"。
向左修剪-ltrim()
此函数将从字符串开头删除空格。
$str = " Hello World! "; echo ltrim($str);
上面的代码将显示" Hello World!"。
右修剪-rtrim()
此函数将删除字符串末尾的空格。
$str = " Hello World! "; echo rtrim($str);
上面的代码将显示" Hello World!"。
字符串填充-str_pad()
此函数用于在字符串中填充字符。
$str = "Hi"; $width = 5; echo str_pad($str, $width);
上面的代码将字符串$str填充为空白(默认),最大长度为5.因此输出为Hi
。
默认填充位于字符串的右侧(末尾),用于填充的默认字符为空格。
要用特定字符填充字符串,我们传递第三个参数。
$str = "Hi"; $width = 5; echo str_pad($str, $width, "*");
输出将为" Hi ***"。
宽度决定最终长度。
$str = "Hi"; $width = 5; echo str_pad($str, $width, "1245");
输出将为" Hi123"。
由于字符串的最终长度为5,因此最后两个字符" 45"将被截断。
我们可以传递第四个参数来控制填充位置。
$str = "Hi"; $width = 5; echo str_pad($str, $width, "**", STR_PAD_RIGHT);
这将执行右填充,输出将为" Hi ***"。
$str = "Hi"; $width = 5; echo str_pad($str, $width, "**", STR_PAD_LEFT);
这将执行左填充,输出将为" *** Hi"。
$str = "Hi"; $width = 5; echo str_pad($str, $width, "**", STR_PAD_BOTH);
这将执行右填充,输出将为" * Hi **"。
字符串格式-printf()
printf()函数用于打印输出。
在下面的示例中,我们将打印" Hello World!"。
printf("Hello World!");
我们还可以在printf()中使用类型说明符来指定变量的类型,以便格式化输出。
在下面的示例中,我们将整数变量$x设置为10。
我们正在使用类型说明符%d打印$x变量的值。
$x = 10; printf("Value of x = %d", $x);
上面的代码的输出是" x的值= 10"。
$x的值放在%d的位置。
类型说明符%d告诉我们$x的类型是整数。
以下是类型说明符及其含义的列表。
类型说明符 | 含义 |
---|---|
%b | 将参数视为整数,并将其格式化为二进制数。 |
%c | 将参数视为整数,并使用该ASCII值将其格式化为字符。 |
%d | 将参数视为整数,并将其格式化为带符号的十进制数字。 |
%e | 将自变量设置为科学计数法。示例2e + 9 |
%f | 将参数格式设置为浮点数。 |
%o | 将参数视为整数,然后将其输出为八进制数。 |
%s | 将参数格式设置为字符串。 |
%u | 将参数视为整数,然后将其输出为无符号十进制数。 |
%x | 将参数视为整数,并以小写形式将其输出为十六进制数。 |
%X | 将自变量视为整数,并以十六进制数字大写输出。 |
%% | 显示%符号。对此不需要任何参数。 |
例
$name = "theitroad"; $time = "10am"; $day = "Sunday"; printf("%s will upload his new YouTube video at %d on %s.", $name, $time, $day);
使用printf()打印签名号码
默认情况下,printf()
将显示带有(-)符号的负数,但不会显示带有(+)符号的正数。
要显示正确的标志,请使用以下内容。
printf("%+d", 10); //this will print "+10" printf("%+d", -10); //this will print "-10"
使用printf()填充输出
我们还可以通过插入填充说明符来填充输出。
在下面的示例中,我们在数字前加0开头,字符总数为6。
$x = 10; printf("%06d", $x);
要使用特殊字符填充,请使用撇号('),后跟要使用的字符。
在下面的示例中,我们用前导号填充数字,字符总数为6。
$x = 10; printf("%'#6d", $x);
10
默认情况下,填充始终位于左侧。
要在右侧添加填充,我们使用(-)符号。
在下面的示例中,我们在数字后面加上#号,字符总数为6。
$x = 10; printf("%'#-6d", $x);
使用printf()的数字精度
我们还可以使用精度说明符来限制输出中所需的小数位数。
在下面的示例中,我们打印PI = 22/7的值。
$pi = 22/7; printf("%f", $pi);
3.142857
为了将小数位数限制为两位数,我们使用%.2f
$pi = 22/7; printf("%.2f", $pi);
为了填充前导0,将字符总数限制为5,还将小数位限制为2,我们使用以下命令。
$pi = 22/7; printf("%05.2f", $pi);
为了存储结果,请使用sprintf()
为了将结果存储在变量中以备后用,我们使用了sprintf()函数。
此函数与printf()完全相同,但是不打印结果,而是返回结果字符串。
$time = 8; $txt = "Radio!"; $str = sprintf("This is %d A.M. %s", $time, $txt);
上面的代码将保存"这是上午8点广播!"在变量$str中。