字符串函数
[toc]
1. 字符串语法
序号 |
方式 |
描述 |
1 |
单引号 |
全部内容视为纯文本 |
2 |
双引号 |
可解析变量和转义特殊字符 |
3 |
heredoc |
与双引号类似 |
4 |
nowdoc |
与单引号类似 |
1.1 单引号
单引号 |
转义符 |
特殊字符 |
变量 |
转义 |
转义 |
不转义 |
不解析 |
1.2 双引号
双引号 |
转义符 |
特殊字符 |
变量 |
转义 |
转义 |
转义 |
解析 |
- 双引号中的变量, 应该使用大括号
{}
限定标识符识别范围,如: “{\$email}” - 双引号中的特殊字符列表
序号 |
特殊字符 |
描述 |
1 |
\n |
换行(ASCII 字符集中的 LF 或 0x0A (10)) |
2 |
\r |
回车(ASCII 字符集中的 CR 或 0x0D(13)) |
3 |
\t |
水平制表符(ASCII 字符集中的 HT 或 0x09 (9)) |
4 |
\v |
垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起) |
5 |
\e |
Escape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起) |
6 |
\f |
换页(ASCII 字符集中的 FF 或 0x0C (12))(自 PHP 5.2.5 起) |
7 |
\\ |
反斜线 |
8 |
\$ |
美元标记 |
9 |
\" |
双引号 |
10 |
\[0-7]{1,3} |
符合该正则表达式序列的是一个以八进制方式来表达的字符 |
11 |
\x[0-9A-Fa-f]{1,2} |
符合该正则表达式序列的是一个以十六进制方式来表达的字符 |
1.3 heredoc
双引号 |
转义符 |
特殊字符 |
变量 |
不转义 |
不转义 |
转义 |
解析 |
1.4 nowedoc
单引号 |
转义符 |
特殊字符 |
变量 |
不转义 |
不转义 |
不转义 |
不解析 |
2. 打印输出函数
序号 |
函数 |
说明 |
1 |
echo |
输出一个或多个字符串 |
2 |
print |
输出字符串 |
3 |
printf |
输出格式化字符串 |
4 |
vprintf |
与 printf()区别在于参数在数组中 |
5 |
sprintf |
返回格式化字符串,存入变量/文件中 |
6 |
vsprintf |
与 sprintf()区别在于参数在数组中 |
7 |
fprintf |
将格式化字符串写入文件流中 |
8 |
vfprintf |
与 fprintf()区别在于参数使用数组 |
9 |
sscanf |
根据指定格式解析输入的字符 |
10 |
number_format |
以千位分隔符方式格式化一个数字 |
3 分割查询与替换函数
3.1 第一组
序号 |
函数 |
说明 |
1 |
implode |
将一个一维数组的值转化为字符串 |
2 |
join |
别名 implode |
3 |
explode |
使用一个字符串分割另一个字符串 |
5 |
substr |
返回字符串的子串 |
6 |
substr_count |
计算子串出现的次数 |
7 |
substr_replace |
替换字符串的子串 |
8 |
str_split |
将字符串转换为数组 |
9 |
str_getcsv |
解析 CSV 字符串为一个数组 |
3.2 第二组
序号 |
函数 |
说明 |
10 |
str_pad |
使用另一个字符串填充字符串为指定长度 |
11 |
str_repeat |
重复一个字符串 |
12 |
str_replace |
子字符串替换 |
13 |
str_ireplace |
str_replace 的忽略大小写版本 |
14 |
strtr |
转换指定字符 |
15 |
str_shuffle |
随机打乱一个字符串 |
16 |
wordwrap |
打断字符串为指定数量的子串 |
17 |
trim |
去除字符串首尾处的空白字符(或者其他字符) |
18 |
rtrim |
删除字符串末端的空白字符(或者其他字符) |
19 |
ltrim |
删除字符串开头的空白字符(或其他字符) |
20 |
chop |
rtrim 的别名 |
附录 1: trim()/ltrim()/rtrim()
去除的空白符列表
序号 |
空白符 |
描述 |
1 |
" " |
(ASCII 32 (0x20)) ,普通空格符 |
2 |
"\t" |
(ASCII 9 (0x09)) ,制表符 |
3 |
"\n" |
(ASCII 10 (0x0A)) 换行符 |
4 |
"\r" |
(ASCII 13 (0x0D)) 回车符 |
5 |
"\0" |
(ASCII 0 (0x00)) 空字节符 |
6 |
"\x0B" |
(ASCII 11 (0x0B)) 垂直制表符 |
3.3 第三组
序号 |
函数 |
说明 |
21 |
strpos |
查找字符串首次出现的位置 |
22 |
stripos |
查找字符串首次出现的位置(忽略大小写) |
23 |
strripos |
计算指定字符串在目标字符串中最后一次出现的位置(忽略大小写) |
24 |
strrpos |
计算指定字符串在目标字符串中最后一次出现的位置) |
25 |
strstr |
查找字符串的首次出现 |
26 |
stristr |
strstr 函数的忽略大小写版本 |
27 |
strrchr |
查找指定字符在字符串中的最后一次出现 |
28 |
strchr |
别名 strstr |
29 |
strpbrk |
在字符串中查找一组字符的任何一个字符 |
30 |
strspn |
计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度 |
31 |
strtolower |
将字符串转化为小写 |
32 |
strtoupper |
将字符串转化为大写 |
33 |
lcfirst |
使一个字符串的第一个字符小写 |
34 |
ucfirst |
将字符串的首字母转换为大写 |
35 |
ucwords |
将字符串中每个单词的首字母转换为大写 |
36 |
strlen |
获取字符串长度 |
37 |
strrev |
反转字符串 |
38 |
strip_tags |
从字符串中去除 HTML 和 PHP 标记 |
4. URL 处理函数
序号 |
函数 |
说明 |
1 |
parse_str |
将字符串解析成多个变量,处理 url |
2 |
parse_url |
解析 URL,返回其组成部分 |
3 |
http_build_query |
生成 URL-encode 之后的请求字符串 |
4 |
urldecode |
解码已编码的 URL 字符串 |
5 |
urlencode |
编码 URL 字符串 |
6 |
base64_encode |
MIME base64 数据解码 |
7 |
base64_decode |
MIME base64 数据编码 |
附录 1: $_SERVER
预定义变量
以 URL 为例: http://php.io/case/demo12.php/m/admin/c/add?id=5&name=admin
序号 |
变量 |
描述 |
示例 |
1 |
UNIQUE_ID |
HTTP 请求的唯一标识符 |
Xn4DhH8AAAEAAAWiEO0AAAAB |
2 |
HTTP_HOST |
HTTP 主机名/域名 |
php.io |
3 |
SERVER_ADDR |
HTTP 主机名 IP 地址 |
127.0.0.1 / 0:0:0:1 / ::1 |
4 |
SERVER_PORT |
Web 服务器使用的端口 |
80 |
5 |
REMOTE_PORT |
用户机器连接到 Web 服务器的端口号 |
52706 |
6 |
SERVER_NAME |
Appcha 配置的 ServerName |
php.io |
7 |
DOCUMENT_ROOT |
当前脚本所在的根目录(配置文件中) |
/Documents/web/php/case |
8 |
SCRIPT_FILENAME |
当前执行脚本的绝对路径 |
/Documents/web/php/case/demo1.php |
9 |
SCRIPT_NAME |
当前执行脚本的路径与文件名 |
/case/demo1.php |
10 |
PHP_SELF |
当前脚本名(含 pathinfo) |
/case/demo1.php/m/admin/c/add |
11 |
PATH_INFO |
执行脚本与查询字符串之间的路径信息 |
/m/admin/c/add |
12 |
PATH_TRANSLATED |
脚本所在文件系统路径(限 pathinfo) |
/Documents/web/php/m/admin/c/add |
13 |
REQUEST_URI |
当前访问的 URL(pathinfo,查询字符串) |
case/demo1.php/m/admin/c/add?id=5&… |
14 |
QUERY_STRING |
查询字符串(不含前导问号? ) |
id=5&name=admin |
15 |
REQUEST_METHOD |
HTTP 请求类型 |
POST / GET |
16 |
HTTP_REFERER |
引导用户进入当前页面的 URL |
如果是直接进入当前页,则不存在该值 |
17 |
HTTP_USER_AGENT |
客户端/浏览器信息get_browser() |
Mozilla/5.0 (Macintosh; Intel Mac … |
18 |
SERVER_SOFTWARE |
web 服务器软件 |
Apache |
19 |
SERVER_PROTOCOL |
web 服务器 HTTP 协议 |
HTTP/1.1 |
20 |
GATEWAY_INTERFACE |
网关接口:服务器使用 CGI 规范 |
CGI/1.1 |
21 |
REQUEST_TIME |
HTTP 请求开始的时间戳 |
1585320730 |
22 |
REQUEST_TIME_FLOAT |
HTTP 请求开始的时间戳(微秒级) |
1585320730.803 |
23 |
argv |
传递给脚本的参数数组 |
Array ( [0] => id=5&name=admin ) |
24 |
argc |
传递给脚本的参数数量 |
1 |
25 |
HTTP_ACCEPT |
客户端请求/接受文档类型 |
text/html,application/xhtml+xml,appli… |
26 |
HTTP_ACCEPT_ENCODING |
HTTP 压缩 HTML 的编码方式 |
gzip, deflate |
27 |
HTTP_ACCEPT_LANGUAGE |
HTTP 接受的语言 |
zh-CN,zh;q=0.9,en;q=0.8,ja;q=0.7 |
附录 2: urlencode()
:对 url 变量值进行编码
除了-\_. 之外的所有字符 |
空格 |
编码方式 |
% +2 位 16 进制数 |
+ |
application/x-www-form-urlencoded |
附录 3: base64_encode()
:用 base64 对 data 进行编码
- 为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体
- 下载链接, 图片等都可以使用它进行加密处理
- 加密之后的数据比原始数据要多占据 33%的空间大小
附录 4: Data URI Scheme(协议)
形如:data:text/jpeg;base64,/9j/4AAQSkZJRgABA...
这样的资源链接
序号 |
协议 |
说明 |
1 |
data: |
文本数据 |
2 |
data:text/plain, |
文本数据 |
3 |
data:text/html, |
HTML 代码 |
4 |
data:text/css;base64, |
css 代码 |
5 |
data:text/javascript;base64, |
javascript 代码 |
6 |
data:image/x-icon;base64, |
base64 编码的 icon 图片数据 |
7 |
data:image/gif;base64, |
base64 编码的 gif 图片数据 |
8 |
data:image/png;base64, |
base64 编码的 png 图片数据 |
9 |
data:image/jpeg;base64, |
base64 编码的 jpeg 图片数据 |
5. HTML 相关
序号 |
函数 |
说明 |
1 |
htmlspecialchars |
将特殊字符转换为 HTML 实体 |
2 |
htmlspecialchars_decode |
将特殊的 HTML 实体转换回普通字符 |
3 |
htmlentities |
将字符转换为 HTML 转义字符 |
4 |
html_entity_decode |
将 HTML 实体转换为它们相应的字符 |
5 |
nl2br |
在字符串所有新行之前插入 HTML 换行标记 |
附录 1: html 实体字符
- 某些字符在 html 文档中有特殊意义,如
<>
用表示元素标签,这些都是预留字符,不能直接使用 - 如果要在 html 文档中正确显示他们,需要将它们转为html 实体字符,如
<
转为<
- html 实体字符有二种表示方法: 1. 命名表示法,如
<
, 2. 编码表示法, 如&60;
- 常用实体字符列表:
序号 |
描述 |
实体名称 |
实体编码 |
1 |
' ' |
空格 |
|
|
2 |
< |
小于号 |
< |
< |
3 |
> |
大于号 |
> |
> |
4 |
& |
和号 |
& |
& |
5 |
" |
双引号 |
" |
" |
6 |
' |
单引号 |
' |
' |
7 |
¢ |
分(cent) |
¢ |
¢ |
8 |
£ |
镑(pound) |
£ |
£ |
9 |
¥ |
元(yen) |
¥ |
¥ |
10 |
€ |
欧元(euro) |
€ |
€ |
11 |
§ |
小节 |
§ |
§ |
12 |
© |
版权(copyright) |
© |
© |
13 |
® |
注册商标 |
® |
® |
14 |
™ |
商标 |
™ |
™ |
15 |
× |
乘号 |
× |
× |
16 |
÷ |
除号 |
÷ |
÷ |
附录 2: htmlspecialchars()转换字符列表
序号 |
原字符 |
替换成 |
1 |
& |
& |
2 |
" |
" |
3 |
' |
' |
4 |
< |
< |
5 |
> |
> |
如果要转换的字符超出以上列表,请使用: htmlentities()
附录 3: 转换时的 FLAG 常量
序号 |
常量 |
描述 |
1 |
ENT_COMPAT |
会转换双引号,不转换单引号 |
2 |
ENT_QUOTES |
既转换双引号也转换单引号 |
3 |
ENT_NOQUOTES |
单/双引号都不转换 |
4 |
ENT_SUBSTITUTE |
替换无效的代码单元序列为 Unicode 代替符 |
5 |
ENT_DISALLOWED |
为文档的无效代码点替换为 Unicode 代替符 |
6 |
ENT_HTML401 |
以 HTML 4.01 处理代码 |
7 |
ENT_XML1 |
以 XML 1 处理代码 |
8 |
ENT_XHTML |
以 XHTML 处理代码 |
9 |
ENT_HTML5 |
以 HTML 5 处理代码 |
6. 转码相关函数
序号 |
函数 |
说明 |
1 |
chr |
返回指定的字符 |
2 |
ord |
转换字符串第一个字节为 0-255 之间的值 |
3 |
chunk_split |
将字符串分割成小块 |
4 |
bin2hex |
函数把包含数据的二进制字符串转换为十六进制值 |
5 |
hex2bin |
转换十六进制字符串为二进制字符串 |
7 |
convert_uuencode |
将所有(含 2 进制)字符串转为可打印字符便于网络安全传输 |
6 |
convert_uudecode |
将 convert_uuencode 编码的字符串解析还原(反操作) |
8 |
count_chars |
返回字符串所用字符的信息(每个字符出现的次数) |
9 |
quotemeta |
转义元字符集: . \ + * ? [ ^ ] ( $ ) |
序号 |
模式符 |
说明 |
1 |
0 |
以所有的每个字节值作为键名, 出现次数作为值的数组 |
2 |
1 |
与 0 相同,但只列出出现次数大于零的字节值 |
3 |
2 |
与 0 相同,但只列出出现次数等于零的字节值 |
4 |
3 |
返回由所有使用了的字节值组成的字符串 |
5 |
4 |
返回由所有未使用的字节值组成的字符串 |
quotemeta()
: 预定义的字符前添加反斜线\
- 预定义字符列表(在正则中具有特殊语义)
序号 |
字符 |
说明 |
1 |
. |
圆点 |
2 |
\ |
反斜线 |
3 |
+ |
加号 |
4 |
* |
星号 |
5 |
? |
问号 |
6 |
[] |
方括号 |
7 |
^ |
脱字符 |
8 |
$ |
美元符 |
9 |
() |
圆括号 |
7. 哈希相关函数
序号 |
函数 |
说明 |
1 |
md5_file |
计算指定文件的 MD5 散列值 |
2 |
md5 |
计算字符串的 MD5 散列值 |
3 |
sha1_file |
计算文件的 sha1 散列值 |
4 |
sha1 |
计算字符串的 sha1 散列值 |
5 |
crypt |
单向字符串散列 |
6 |
crc32 |
计算一个字符串的 crc32 多项式 |
7 |
str_rot13 |
对字符串执行 ROT13 转换 |
8. 统计与比较函数
序号 |
函数 |
说明 |
1 |
strspn |
返回字符串与掩码中字符串匹配的字符数量 |
2 |
strcspn |
返回第一个字符串中, 找到与掩码字符之前的字符数量 |
3 |
str_word_count |
返回字符串中单词的使用情况 |
4 |
substr_compare |
二进制安全比较字符串(从偏移位置比较指定长度) |
5 |
strcmp |
二进制安全字符串比较 |
6 |
strncmp |
二进制安全比较字符串开头的若干个字符 |
7 |
strcasecmp |
二进制安全比较字符串(不区分大小写) |
8 |
strncasecmp |
二进制安全比较字符串开头的若干个字符(不区分大小写) |
示例
示例1:字符串表示方式
<?php
// 字符串
// 1. 单引号
// 2. 双引号
// 3. heredoc: 类似双引号
// 4. nowdoc: 类似单引号
/********************************************************** */
// 1. 单引号
// 不解析内部变量
// 单引号目前是字符串的定界符
// 转义字符"\"在单引号中只能转义自身和单引号自己
// 转放字符不能转义特殊字符: \r\t\
$str='小树小站';
echo 'This a good site:$str';
echo '<hr>';
// $str: 变量标识符
// 2. 双引号
// 双引号字符串的变量会被解析出来值
// echo "This is a $string";
// 给双引号中的变量添加 "变量定界符"
echo "This is a {$str}ing", '<br>';
echo "This is a ${str}ing";
echo '<hr>';
// 如果说双引号字符串出现了: 1. 双引号, 2. 特殊字符, 3. 转义字符\
echo "This \"s \r\n a ${str} \\";
echo '<hr>';
// 3. heredoc
// 内部的字符串不需要添加定界符
// 功能与双引号定义的字符串类似
echo <<< "ok"
This is a $str
ok;
// heredoc适合输出大量的html+php的代码
$book = ['id'=>123, 'name'=>'PHP开发指南', 'price'=> 99];
// "BOOK"的双引号可以省略
echo <<< BOOK
<ul style="list-style:none">
<li>ID: {$book['id']}</li>
<li>书名: {$book['name']}</li>
<li>价格: {$book['price']}</li>
</ul>
BOOK;
echo '<hr>';
// 4. nowdoc
// 内部的字符串不需要添加定界符
// 功能与"单引号"定义的字符串类似
echo <<< 'ABC'
This 's a \r\n $str \
ABC;
echo '<hr>';
// nowdoc适合大段php代码,而且不需要转义,也不需要解析内部变量的文本
// 经常用于初始化类属性和类常量, 凡是需要静态数据的场景下都可以用
class Demo
{
const STR = <<< 'FOO'
mail: admin@php.cn <br>
qq: 498668472 <br>
work-unit: php中文网 <br>
FOO;
}
echo Demo::STR;
示例2:打印输出函数
<?php
// 打印输出函数
// printf(): 格式化输出
// printf('输出的格式', 字符串列表)
$site = 'php.cn';
// %s: 字符串, %d: 数值
printf('Hello %s', $site);
echo '<br>';
printf('SELECT * FROM `%s` LIMIT %d', 'staff', 25);
echo '<hr>';
// vprintf(): 与printf()区别就在参数上,多个参数使用数组
vprintf('SELECT * FROM `%s` LIMIT %d', ['staff', 5]);
echo '<hr>';
// sprintf():与printf()功能一样, 但是它是返回, 不是打印
echo sprintf('SELECT * FROM `%s` LIMIT %d', 'users', 15);
echo '<br>';
// vsprintf 与 vprint: 返回字符串版本
echo vsprintf('SELECT * FROM `%s` LIMIT %d', ['staff', 25]);
echo '<hr>';
// fprintf():将格式化的字符串写入到一个文件流中
$writerin = fopen('1.txt','w') or die('You can not open it');
fprintf($writerin,sprintf('SELECT * FROM `%s` LIMIT %d', 'staff', 55));
echo file_get_contents('1.txt');
echo '<hr>';
$handle = fopen('test.txt', 'w') or die('open file faill');
fprintf($handle,sprintf('SELECT * FROM `%s` LIMIT %d', 'staff', 555555));
echo file_get_contents('test.txt');
echo '<hr>';
// sscanf(): 按指定的格式输入数据
var_dump(sscanf('SN-5566', 'SN-%d'));
list($sn) = sscanf('SN-123333', 'SN-%d');
echo $sn;
echo '<hr>';
// number_format(): 数值格式化
echo number_format(12345.67), '<br>';
echo number_format(12345.67, 2), '<br>';
echo number_format(12345.67, 2, '.', ''), '<br>';
echo number_format(12345.67, 2, '.', '-'), '<br>';
示例3
<?php
//分割查询与替换: 第一部分
// implode(): 一维数组转字符串
// 用指定字符串将数组组装成一个字符串返回
echo implode('***', ['html', 'css', 'js', 'php']), '<br>';
// echo join('***', ['html', 'css', 'js', 'php']), '<br>';
echo '<br>';
// explode(): 使用一个字符串来分隔另一个字符串, 返回数组
$aaa ='123-abc-456-dfg-789';
printf('<pre>%s</pre>',print_r(explode('-',$aaa,4),true));
list($num,$char)=explode('-',$aaa,4);
echo "$num=>$char";
echo '<hr>';
$paras = 'localhost-root-root-utf8-3306';
printf('<pre>%s</pre>', print_r(explode('-', $paras, 4), true));
list($host,$user, $pass) = explode('-', $paras, 4);
echo "$host: $user => $pass";
echo '<hr>';
示例4
<?php
// 分割查询与替换函数: 第一部分
//substr($string, $start, $length): 返回字符串的子串
echo substr('11111ababab',0),'<br>';
echo substr('11111ababab',2),'<br>';
echo substr('11111ababab',2,2),'<br>';
echo substr('abcdef', 0), '<br>';
echo substr('abcdef', 2), '<br>';
echo substr('abcdef', 2, 2), '<br>';
// 参数支持负数
// echo substr('abcdef', -1, 1), '<br>';
// echo substr('abcdef', -1), '<br>';
// echo substr('abcdef', -3), '<br>';
// echo substr('abcdef', -3, 2), '<br>';
// echo '<hr>';
示例5
<?php
// substr_count($str, $needel, $start, $length): 统计某个子串的出现的频率/次数
// 统计 'is' 的出现的频率
echo substr_count('This is a test', 'is'), '<br>';
echo substr_count('This is a test', 'is', 3), '<br>';
echo substr_count('This is a test', 'is', 3, 3), '<br>';
echo '<hr>';
示例6
<?php
$search = ['交友', '广告', '直播', '带货'];
$replace =['***', '===', '###', '+++'];
$comment = '广告代理, 直播教学, 免费带货, 异性交友';
echo str_replace($search, '###', $comment), '<br>';
echo str_replace($search,$replace, $comment), '<br>';
echo '<hr>';
示例7
<?php
//strcmp — 二进制安全字符串比较,strcmp ( string $str1 , string $str2 ) : int,注意该比较区分大小写。
//参数,str1,第一个字符串;str2,第二个字符串。
//返回值,如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。
$var1 = "Xibianxiaoshu";
$var2 = "xibianxiaoshu";
if (strcmp($var1, $var2) !== 0) {
echo "$var1".' is not equal to '."$var2".' in a case sensitive string comparison'.'<br>';
}
示例8
<?php
//strpos — 查找字符串首次出现的位置
//说明,strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int
//返回 needle 在 haystack 中首次出现的数字位置。
//参数,haystack在该字符串中进行查找。 needle,如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值。
//offset 如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。 如果是负数,搜索会从字符串结尾指定字符数开始。
$str = 'abcdabcccdddabab';
$needle ='cd';
echo '所查询的子串首次出现的位置为:'.strpos($str,$needle,3),'<hr>';
示例9
<?php
//strtoupper — 将字符串转化为大写
//说明,strtoupper ( string $string ) : string,将 string 中所有的字母字符转换为大写并返回。
//注意 "字母" 与当前所在区域有关。例如,在默认的 "C" 区域,字符 umlaut-a(?)就不会被转换。
//参数,string,输入字符串。 返回值,返回转换后的大写字符串。
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtoupper($str);
echo $str; // 打印 MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
//strtolower — 将字符串转化为小写
示例10
<?php
//md5 — 计算字符串的 MD5 散列值
//说明,md5 ( string $str [, bool $raw_output = FALSE ] ) : string
//使用 » RSA 数据安全公司的 MD5 报文算法计算 str 的 MD5 散列值。
//参数,str,原始字符串。 raw_output,如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。
//返回值,以 32 字符十六进制数字形式返回散列值。
$str = 'apple';
if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
echo "Would you like a green or red apple?";
}
课程学习小结
本次课程详细介绍了字符串及其相应函数的相关知识,老师用归纳和实例的方式讲解了对应内容,尽量让抽象的知识能通俗易懂,学习函数相关知识的时候,重点还在于对函数参数的理解以及在实际场景中的灵活运用,开始大家都觉得听不太懂或者数量众多记不牢,在老师的指引下,我们通过回看视频及上机实践,尤其是从官网等途径查阅相关网络学习资料,在相对理解的基础上,做一定的案例代码模仿练习,进一步巩固了相关知识,对后续的学习有不小的帮助。