PHP 常用函数
PHP 常用函数 - 字符串函数 PHP 常用函数 - 数组函数 PHP 常用函数 - 数学函数 PHP 常用函数 - 目录、文件函数 PHP 常用函数 - 其他常用函数
提示:以下是本篇文章正文内容,下面案例可供参考
字符串函数
1、字符串格式化
1、trim(): 删除字符串两端的空格或其他预定义字符
$str = "\r\nHello World!\r\n";
echo trim($str); // Hello World!
2、rtrim(): 删除字符串右边的空格或其他预定义字符
$str = "Hello World!\n\n";
echo rtrim($str); // Hello World!
echo chop($str); // Hello World!
# chop() 是 rtrim()的别名
3、ltrim(): 删除字符串左边的空格或其他预定义字符
$str = "\r\nHello World!";
echo ltrim($str);
4、strtolower(): 字符串转为小写
echo strtolower("Hello World!"); // hello world!
5、strtoupper(): 字符串转为大写
echo strtoupper("Hello World!"); // HELLO WORLD!
6、ucfirst(): 字符串首字母大写
echo ucfirst("hello world"); // Hello world
7、ucwords(): 字符串每个单词首字符转为大写
echo ucwords("hello world"); // Hello World
8、lcfirst(): 把字符串中的首字符转换为小写。
echo lcfirst("Hello World!"); // hello world!
2、字符串定位
1、strpos(): 计算字符串在另一字符串中第一次出现的位置,区分大小写
echo strpos("I love php, I love php too!","php"); // 7
2、stripos(): 计算字符串在另一字符串中第一次出现的位置,不区分大小写
echo stripos("I love php, I love php too!","PHP"); // 7
3、strrpos(): 计算字符串在另一字符串中最后一次出现的位置,区分大小写。
echo strrpos("I love php, I love php too!","php"); // 7
4、strripos(): 计算字符串在另一字符串中最后一次出现的位置,不区分大小写
echo strripos("I love php, I love php too!","PHP"); // 19
5、strstr()|strchr(): 返回字符串在另一字符串中第一次出现的位置到结束的所有字符串,区分大小写
strstr() 函数搜索字符串在另一字符串中是否存在,如果是,返回第一次出现该字符串及剩余部分,否则返回 FALSE。
echo strstr("Hello world!","world"); // 输出 world!
echo strchr("Hello world!","world"); // 输出 world!
6、stristr(): 返回字符串在另一字符串中的第一次出现的位置到结束的所有字符串,不区分大小写
echo stristr("Hello world!","WORLD"); // world!
7、strrchr(): 返回字符串在另一个字符串中最后一次出现的位置到结束的所有字符串,不区分大小写
echo strrchr("Hello world!","world"); // world!
8、strpbrk(): 在字符串中搜索指定字符中的任意一个,区分大小写
echo strpbrk("Hello world!","oe"); // ello world!
3、字符串运算与字符串子串
1、substr() | mb_substr(): 返回字符串的一部分(截取字符串)
语法: substr(string,start,length)
echo substr("Hello world",6); // world
substr() 函数,它只针对英文字符,如果要分割的中文文字则需要使用 mb_substr()。
echo mb_substr("菜鸟教程", 0, 2);
// 输出:菜鸟
2、substr_replace(): 把字符串的一部分替换为另一个字符串
echo substr_replace("Hello","world",0); // world
3、str_replace(): 替换字符串中的一些字符,区分大小写
echo str_replace("world","Peter","Hello world!"); // Hello Peter!
4、str_ireplace(): 替换字符串中的一些字符,不区分大小写
echo str_ireplace("WORLD","Peter","Hello world!"); // Hello Peter!
5、str_repeat(): 把字符串重复指定的次数
echo str_repeat(".",13); // .............
6、str_pad(): 把字符串填充为指定的长度
$str = "Hello World";
echo str_pad($str,20,"."); // Hello World.........
7、strrev(): 反转字符串
echo strrev("Hello World!"); // !dlroW olleH
8、strtr(): 转换字符串中的某些字符
echo strtr("Hilla Warld","ia","eo"); // Hello World
9、str_shuffle(): 随机地打乱字符串中的所有字符
echo str_shuffle("Hello World"); // lolWo drHle
10、chunk_split():将字符串分成小块
$str = "Hello world!";
echo chunk_split($str,1,"."); // H.e.l.l.o. .w.o.r.l.d.!.
11、strtok(): 切开字符串
$string = "Hello world. Beautiful day today.";
$token = strtok($string, " ");
while ($token != false)
{
echo "$token<br>";
$token = strtok(" ");
}
// 输出:
Hello
world.
Beautiful
day
today.
12、wordwrap(): 按照指定长度对字符串进行折行处理
$str = "An example of a long word is: Supercalifragulistic";
echo wordwrap($str,15,"<br>\n");
// 输出:
An example of a<br>
long word is:<br>
Supercalifragulistic
13、number_format(): 通过千位分组来格式化数字
echo number_format("1000000")."<br>"; // 1,000,000
echo number_format("1000000",2)."<br>"; // 1,000,000.00
echo number_format("1000000",2,",","."); // 1.000.000,00
14、dirname(): 返回路径中的目录部分
echo dirname("c:/testweb/home.php"); //c:/testweb
4、字符串比较
1、strnatcmp(): 使用一种"自然排序"算法来比较两个字符串,区分大小写
语法:strnatcmp(string1,string2);
返回值:
0 - 如果两个字符串相等
<0 - 如果 string1 小于 string2
>0 - 如果 string1 大于 string2
echo strnatcmp("2Hello world!","10Hello world!"); // -1
echo strnatcmp("10Hello world!","2Hello world!"); // 1
2、strnatcasecmp(): 使用一种"自然排序"算法来比较两个字符串,不区分大小写
语法: strncasecmp(string1,string2,length);
echo strncasecmp("Hello world!","hello earth!",6); // 0
3、strcasecmp(): 使用一种"自然排序"算法来比较两个字符串,不区分大小写
该函数与 strncasecmp() 函数类似,不同的是,通过 strncasecmp() 可以指定每个字符串用于比较的字符数。
语法: strcasecmp(string1,string2);
返回值:
0 - 如果两个字符串相等
<0 - 如果 string1 小于 string2
>0 - 如果 string1 大于 string2
echo strcasecmp("Hello world!","HELLO WORLD!"); // 0
4、substr_compare(): 从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。
语法:substr_compare(string1,string2,startpos,length,case);
echo substr_compare("Hello world","Hello world",0); // 0
5、strncasecmp(): 前 n 个字符的字符串比较,不区分大小写
echo strncasecmp("Hello world!","hello earth!",6); // 0
6、strncmp(): 前 n 个字符的字符串比较,区分大小写
echo strncmp("Hello world!","Hello earth!",6); // 0
7、strcmp(): 区分大小写比较两字符串
echo strcmp("Hello world!","Hello world!"); // 0
8、strcoll(): 比较两个字符串(根据本地设置)
setlocale (LC_COLLATE, 'NL');
echo strcoll("Hello World!","Hello World!"); // 0
setlocale (LC_COLLATE, 'en_US');
echo strcoll("Hello World!","Hello World!"); // 0
9、similar_text(): 计算两个字符串的相似度
echo similar_text("Hello World","Hello Peter"); // 7 - 相同字符数量
5、字符串计数
1、strspn(): 返回在字符串中包含的特定字符的数目
echo strspn("Hello world!","kHlleo"); // 5
2、strcspn(): 返回在找到任何指定的字符之前,在字符串查找的字符数
echo strcspn("Hello world!","w"); // 6
3、str_word_count(): 计算字符串中的单词数
echo str_word_count("Hello world!"); // 2
4、count_chars(): 统计字符串中所有字母出现次数(0…255)
语法: count_chars(string,mode);
mode:可选。规定返回模式。默认是 0。有以下不同的返回模式:
0 - 数组,ASCII 值为键名,出现的次数为键值
1 - 数组,ASCII 值为键名,出现的次数为键值,只列出出现次数大于 0 的值
2 - 数组,ASCII 值为键名,出现的次数为键值,只列出出现次数等于 0 的值
3 - 字符串,带有所有使用过的不同的字符
4 - 字符串,带有所有未使用过的不同的字符
$str = "Hello World!";
echo count_chars($str,3); // !HWdelor
5、strlen(): 获取字符串的长
echo strlen("world"); // 5
中文字符串的处理使用 mb_strlen() 函数。使用 mb_strlen 要开启 mbstring 扩展。
6、substr_count(): 计算子串在字符串中出现的次数
echo substr_count("Hello world. The world is nice","world"); // 2
6、字符串与数组
1、str_split(): 将字符串转换为数组
print_r(str_split("Hello")); // Array ( [0] => H [1] => e [2] => l [3] => l [4] => o )
2、implode() | join(): 将一个一维数组的值转化为字符串
$arr = array('Hello','World!','Beautiful','Day!');
echo implode(" ",$arr); // Hello World! Beautiful Day!
3、explode(): 使用一个字符串分割另一个字符串,返回数组
$str = "www.baidu.com";
print_r(explode(".",$str)); // Array([0] => www [1] => baidu [2] => com)
4、str_getcsv(): 把 CSV 字符串解析到数组中。
str_getcsv() 函数解析 CSV 格式字段的字符串,并返回一个包含所读取字段的数组。
语法:str_getcsv(string,separator,enclosure,escape);
string 必需。规定要解析的字符串。
separator 可选。设置字段分界符(只允许一个字符),默认值为逗号( , )。
enclosure 可选。设置字段环绕符(只允许一个字符),默认值为双引号( " )。
escape 可选。设置转义字符(只允许一个字符),默认值为反斜线( \ )。
7、字符串与html
1、htmlentities(): 把字符转换为 HTML 实体
$str = "<? Hello?h°°|§>";
echo htmlentities($str);
上面代码的浏览器输出如下:
<© Helloçh°°¦§>
2、html_entity_decode(): 把 HTML 实体转换为字符
$str = "<© Helloçh°°¦§>;
echo html_entity_decode($str);
上面代码的浏览器输出如下:
<? Hello°°|§>
3、htmlspecialchars(): 把一些预定义的字符转换为 HTML 实体。
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
上面代码的浏览器输出如下:
This is some <b>bold</b> text.
4、htmlspecialchars_decode(): 把一些预定义的 HTML 实体转换为字符
把预定义的 HTML 实体 "<"(小于)和 ">"(大于)转换为字符:
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars_decode($str);
上面代码的浏览器输出如下:
This is some bold text.
5、et_html_translation_table() 返回 htmlspecialchars() 和 htmlentities() 使用的翻译表。
print_r (get_html_translation_table());
// 输出:
Array
(
["] => "
[&] => &
[<] => <
[>] => >
)
6、addcslashes(): 在指定的字符前添加反斜杠的字符串
$str = addcslashes("Hello World!","W");
echo($str); // Hello \World!
7、stripcslashes(): 删除由 addcslashes() 函数添加的反斜杠
$str = addcslashes("Hello World!","W");
echo($str); // Hello \World!
8、addslashes(): 在预定义的字符前添加反斜杠的字符串
$str = addslashes('What does "yolo" mean?');
echo($str); // What does \"yolo\" mean?
9、stripslashes(): 删除由 addslashes() 函数添加的反斜杠
echo stripslashes("Who\'s Peter Griffin?"); // Who's Peter Griffin?
10、strip_tags(): 剥去 HTML、XML 以及 PHP 的标签
echo strip_tags("Hello <b>world!</b>"); //
11、nl2br(): 在字符串中的每个新行之前插入 HTML 换行符
echo nl2br("One line.\nAnother line.");
上面代码的浏览器输出如下:
One line.
Another line.
上面代码的 HTML 输入如下(查看源代码):
One line.<br />
Another line.
8、字符串加密
1、md5(): 计算字符串的 MD5 散列值
$str = "Hello";
echo md5($str); // 8b1a9953c4611296a827abf8c47804d7
2、md5_file(): 计算指定文件的 MD5 散列值
$filename = "test.txt";
$md5file = md5_file($filename);
echo $md5file; // d41d8cd98f00b204e9800998ecf8427e
3、sha1(): 计算字符串的 sha1 散列值
$str = "Hello";
echo sha1($str); // f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0
4、sha1_file(): 计算文件的 sha1 散列值
$filename = "test.txt";
$sha1file = sha1_file($filename);
echo $sha1file; // aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
5、crc32(): 计算一个字符串的 32 位 CRC(循环冗余校验)
$str = crc32("Hello World!");
printf("%un",$str); // 472456355
6、crypt(): 单向的字符串加密法(hashing)
语法: crypt(str,salt); // 实际用法参考官方文档
9、字符串与ASCII 值
1、ord(): 返回字符串中第一个字符的 ASCII 值。
echo ord("h"); // 104
echo ord("hello"); // 104
2、chr(): 返回指定的字符
echo chr(52) ; // 4
echo chr(052); // *
echo chr(0x52); // R
3、bin2hex(): 把 ASCII 字符的字符串转换为十六进制值
$str = bin2hex("Hello World!");
echo($str); // 48656c6c6f20576f726c6421
4、hex2bin(): 把十六进制值的字符串转换为 ASCII 字符
echo hex2bin("48656c6c6f20576f726c6421"); // Hello World!
10、字符串输入与输出
1、vfprintf(): 将格式化字符串写入流(例如:文件或数据库)
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo vfprintf($file,"There are %u million bicycles in %s.",array($number,$str)); // 40 返回被写的字符串的长度。
# 下面的文本将被写入到文件 "test.txt":There are 9 million bicycles in Beijing.
2、fprintf(): 将格式化后的字符串写入到流(例如:文件或数据库)
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo fprintf($file,"There are %u million bicycles in %s.",$number,$str); // 40
下面的文本将被写入到文件 "test.txt":There are 9 million bicycles in Beijing.
3、vprintf(): 输出格式化字符串
$number = 9;
$str = "Beijing";
vprintf("There are %u million bicycles in %s.",array($number,$str)); // There are 9 million bicycles in Beijing.
4、vsprintf(): 把格式化字符串写入变量中
$number = 9;
$str = "Beijing";
$txt = vsprintf("There are %u million bicycles in %s.",array($number,$str));
echo $txt; // There are 9 million bicycles in Beijing.
5、sscanf(): 根据指定的格式解析来自一个字符串的输入
sscanf() 函数基于格式字符串解析字符串到变量中。
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight);
// show types and values
var_dump($age,$weight); // int(30) int(60)
6、parse_str(): 把查询字符串解析到变量中
parse_str("name=Peter&age=43");
echo $name; // Peter
echo $age; // 43
注释:php.ini 文件中的 magic_quotes_gpc 设置影响该函数的输出。如果已启用,那么在 parse_str() 解析之前,变量会被 addslashes() 转换。
7、其他字符串输入函数
print(): 输出字符串
printf(): 输出格式化字符串
echo(): 输出一个或多个字符串
11、字符串编码函数
1、convert_cyr_string(): 把字符串由一种 Cyrillic 字符集转换成另一种
$str = "Hello world! ???";
echo $str . "<br>"; // Hello world! ???
echo convert_cyr_string($str,'w','a'); // Hello world! |è¥
2、convert_uudecode(): 对 uuencode 编码的字符串进行解码
$str = ",2&5L;&@=V]R;&0A `";
echo convert_uudecode($str); // Hello world!
3、convert_uuencode(): 使用 uuencode 算法对字符串进行编码
$str = "Hello world!";
echo convert_uuencode($str); // ,2&5L;&\@=V]R;&0A `
4、str_rot13(): 对字符串执行 ROT13 编码
echo str_rot13("Hello World"); // Uryyb Jbeyq
echo str_rot13("Uryyb Jbeyq"); // Hello World
12、其他字符串函数
1、setlocale() 设置地区信息(地域信息)。
echo setlocale(LC_ALL,"US"); // English_United States.1252
echo setlocale(LC_ALL,NULL); // English_United States.1252
2、nl_langinfo() 返回指定的本地信息。
语法:nl_langinfo(element); 详情参考官方手册。
3、localeconv() 返回本地数字及货币格式信息。
setlocale(LC_ALL,"US");
$locale_info = localeconv();
print_r($locale_info);
// 输出:
Array
(
[decimal_point] => .
[thousands_sep] =>
[int_curr_symbol] =>
[currency_symbol] =>
[mon_decimal_point] =>
[mon_thousands_sep] =>
[positive_sign] =>
[negative_sign] =>
[int_frac_digits] => 127
[frac_digits] => 127
[p_cs_precedes] => 127
[p_sep_by_space] => 127
[n_cs_precedes] => 127
[n_sep_by_space] => 127
[p_sign_posn] => 127
[n_sign_posn] => 127
[grouping] => Array
(
)
[mon_grouping] => Array
(
)
)
4、money_format() 返回格式化为货币字符串的字符串。
$number = 1234.56;
setlocale(LC_MONETARY,"en_US");
echo money_format("The price is %i", $number); // The price is USD 1,234.56
5、levenshtein() 返回两个字符串之间的 Levenshtein 距离。
echo levenshtein("Hello World","ello World"); // 1
echo levenshtein("Hello World","ello World",10,20,30); // 30
6、quotemeta() 引用元字符。
$str = "Hello world. (can you hear me?)";
echo quotemeta($str); // Hello world\. \(can you hear me\?\)
7、quoted_printable_decode() 把 quoted-printable 字符串转换为 8 位字符串。
$str = "Hello=0Aworld.";
echo quoted_printable_decode($str);
// 上面代码的浏览器输出如下:
Hello world.
// 上面代码的 HTML 输出如下(查看源代码):
Hello
world.
8、quoted_printable_encode() 把 8 位字符串转换为 quoted-printable 字符串。
语法: quoted_printable_encode(string); 详情参考官方手册。
9、soundex() 计算字符串的 soundex 键。
echo soundex("Hello"); // H400
10、metaphone() 计算字符串的 metaphone 键。
echo metaphone("World"); // WRLT
11、hebrev() 把希伯来(Hebrew)文本转换为可见文本。
echo hebrev("á ?ù?? ?úù?a"); // a?ùú? ??ù? á
12、hebrevc() 把希伯来(Hebrew)文本转换为可见文本,并把新行(\n)转换为 <br>。
echo hebrevc("á ?ù?? ?úù?a\ná ?ù?? ?úù?a");
// 输出:
a?ùú? ??ù? á
a?ùú? ??ù? á
|