目录
一: php 使用系统内置函数
1.下载一个最新的手册,经常更新手册,需要的时候随时可以查手册,学会手册中函数的用法 ; http://www.php.cn (每周更新一次)
2.函数的基本用法的全部注意事项:
- 直接返回布尔型,如bool copy ()
- 带有MIXED参数的函数如何调用。Mixed表示任何类型的数据。如Array_unshift()
- 参数中带有&符的参数,一定要传一个变量做为参数。函数里面改变了他的值。
- 带有[]的参数,表示可选项。
- 带有…的参数,表示可以传任意多个参数。
- 带有callback的参数,表示回调函数。需要传一个函数进来。Array_map()
- 函数支持的版本你要了解
二:常用内置函数
1.copy()函数
bool copy( string $source, string $dest, [resource $context] )
- 函数功能:拷贝一个文件;
- 返回值: bool型值,就是成功返回true,失败返回false;
- 参数:source, 字符串类型, 源文件路径
- 参数:dest,字符串类型,目标文件,如果
dest
是一个 URL,如果目标文件已存在,将会被覆盖。 - [] 表示context为可选参数,
<?php
if(@copy('abc.txt','bcd.txt')){
echo '复制成功';
}else{
echo '复制失败';
}
//页面输出: 复制失败
?>
2.Mixed表示任何类型的数据
int array_unshift ( array &$array , mixed $value1 ,[ mixed $... ] )
- 功能: 操作一个数组,向数组中之前插入其他类型的参数。
- 返回值: int 类型,返回
array
数组新的单元数目。 - 参数: 第一个参数为&符,也就是在操作的过程中,改变了第一个参数的值。引用传参。也就是操作这个数组,向这个数组中传入参数。会直接改变这个数组的值。
- 第二个参数为mixed,因为数组可以存入多个不同的类型.mixed是指混合的意思。因此,mixed是指可传入任意类型;
- 第三个数数加了中括号,我们所有遇到中括号的。都是指后面的参数可传,也可以不传。
- 第四,最后还看到了三个...(省略号)。代表可以传入任意多个参数。
eg:
<?php
$queue = array("凤姐", "芙蓉");
array_unshift($queue, "杨幂", "姚晨");
print_r($queue);
?>
效果:
Array ( [0] => 杨幂 [1] => 姚晨 [2] => 凤姐 [3] => 芙蓉 )
3.遇到callback的传函数或者匿名函数进去协助处理,让功能更强大;
bool array_walk ( array &$array , callable $callback ,[ mixed $userdata = NULL ] )
- 功能:传入一个回调函数,将数组的原来的组操作,并且发生变化。
- 返回值:bool 值 也就是意味着,提示成功或者失败
- 参数:第一个参数是要操作的数组。
- 第二个参数是callback 代表着可以传入函数或者匿名函数。
<?php
$shuaige = array("a" => "wuyanzhu", "b" => "huangxiaoming", "c" => "ninzetao");
function test_print($item2, $key)
{
echo $key ." ---". strtoupper($item2) . "<br />\n";
}
echo '<pre>';
var_dump($shuaige);
echo '</pre>';
array_walk($shuaige, 'test_print');
echo '用自定义函数test_print执行后的效果:';
echo '<pre>';
var_dump($shuaige);
echo '</pre>';
?>
效果:
array(3) {
["a"]=>
string(8) "wuyanzhu"
["b"]=>
string(13) "huangxiaoming"
["c"]=>
string(8) "ninzetao"
}
a ---WUYANZHU
b ---HUANGXIAOMING
c ---NINZETAO
用自定义函数test_print执行后的效果:
array(3) {
["a"]=>
string(8) "wuyanzhu"
["b"]=>
string(13) "huangxiaoming"
["c"]=>
string(8) "ninzetao"
}
三: 文件包含函数
1.在实际开发中,常常需要把程序中的公用代码放到一个文件中,使用这些代码的文件只需要包含这个文件即可。这种方法有助于提高代码的重用性,给代码的编写与维护带来很大的便利。在PHP中, 有require、require_once、include、include- once四种方法包含一个文件。
函数 | 包含失败 | 特点 |
---|---|---|
Inlcude | 返回一条警告 | 文件继续向下执行。通常用于动态包含 |
Require | 一个致命的错 | 代码就不会继续向下执行。通常包含极为重要的文件,整个代码甭想执行 |
Include_once | 返回一条警告 | 除了原有include的功能以外,它还会做once检测,如果文件曾经已经被被包含过,不再包含 |
Require_once | 一个致命的错 | 除了原的功能一外,会做一次once检测,防止文件反复被包含 |
2.注意:
1).少用_once带once,因为它会消耗更多的资源去做检测的工作。
2).特高级Include文件只需要编译一次,因为每次包含include都会再执行一次对应的代码,如何减少include再次执行时,需要重新解析的过程。
3.include包含函数的功能
=>创建一个functions.php文件,里面写上两个函数:
<?php
//functions.php文件
function demo(){
echo 'aaaa';
}
function test(){
echo 'cccdddd';
}
?>
=>在functions.php的同级目录下,我再创建一个user.php文件把functions.php文件包含进来。这样我的函数就可以专门放在functions.php里面,哪儿需要用到这些函数的时候,我就从哪儿包含进来:
<?php
//user.php
include 'functions.php';
//可以直接调用
demo();
test();
?>
效果:
aaaacccdddd
注意:
- 如果test.php文件不存在include 会发出警告继续执行demo()和test()函数。
- 而requre则直接报错,demo()和test()函数无法继续执行。
inlcude 和include_once的区别在于:检测是否重复包含。如果重复包含了include_once不会再包含 对应的文件了,而include 则不管这些。有没引入过文件,都再引入一次。
equire_once有两个特点:
- 包含 的文件必须存在,否则停止执行;
- 会做重复包含检查;
四: php 数学常用函数
1.在PHP程序中常常需要进行数据处理运算,这就需要使用数学函数。数学函数是最简单、最常用的系统函数。
2.常用数学函数,其他见手册
数名 | 描述 | 实例 | 输入 | 输出 |
---|---|---|---|---|
abs() | 求绝对值 | $abs = abs(-4.2); //4.2 | 数字 | 绝对值数字 |
ceil() | 进一法取整 | echo ceil(9.999); // 10 | 浮点数 | 进一取整 |
floor() | 舍去法取整 | echo floor(9.999); // 9 | 浮点数 | 直接舍去小数部分 |
fmod() | 浮点数取余 | "$x = 5.7;$y = 1.3;$r = fmod($x, $y);// $r equals 0.5, because 4 * 1.3 + 0.5 = 5.7 " | 两个浮点数,x>y | 浮点余数 |
pow() | 返回数的n次方 | echo pow(-1, 20); // 1 | 基础数 n次方 | 乘方值 |
round() | 浮点数四舍五入 | echo round(1.95583, 2);// 1.96 | 一个数值 | 保留小数点后多少位,默认为0 舍入后的结果 |
sqrt() | 求平方根 | echo sqrt(9); //3 | 被开方的数 | 平方根 |
max() | 求最大值 | "echo max(1, 3, 5, 6, 7); // 7 echo max(array(2, 4, 5)); // 5" | 多个数字或数组 | 返回其中的最大值 |
min() | 求最小值 | min | 多个数字或数组 | 返回其中的最小值 |
mt_rand() | 更好的随机数 | echo mt_rand(0,9);//n | 最小/最大,随机数 | 随机返回范围内的值 |
rand() | 随机数 | echo rand() | 最小/最大,随机数 | 随机返回范围内的值 |
pi() | 获取圆周率值 | echo pi(); // 3.1415926535898 | 无 | 获取圆周率 |
3.eg:
<?php
$abs = abs(-4.2); //4.2
echo $abs;
?>
五: php获取时期时间信息函数
1.时区:
这个概念,之前大家听说过很多。我们来啰嗦两句,我们现实生活中使用的实区,在电脑里面也是一样有规定的。1884年在华盛顿召开国际经度会议时,为了克服时间上的混乱,规定将全球划分为24个时区。在中国采用首都北京所在地东八区的时间为全国统一使用时间。
2.世界时:
不光是天文学家使用格林尼治时间(英文简写:GMT),就是在新闻报刊上也经常出现这个名词。我们知道各地都有各地的地方时间。如果对国际上某一重大事情,用地方时间来记录,就会感到复杂不便.而且将来日子一长容易搞错。因此,天文学家就提出一个大家都能接受且又方便的记录方法,那就是以格林尼治(英国某地区)的地方时间为标准。
3.unix时间戳
电脑本身不认识时间,我们在电脑里面设置一个时间方便运算。于是我们规定了一种计算方式,unix时间戳。从Unix纪元(1970 年 1月1日零时)开始到一个时间经过的秒数。
4.设置设置时区的函数为:
1). date_default_timezone_get()
2).date_default_timezone_set()
<?php
echo date_default_timezone_get ();
?>
效果:
UTC
5.用于所有日期时间函数的默认时区
bool date_default_timezone_set ( string $timezone_identifier )
<?php
//定义一下时区常量,以后你可以放到配置文件里
define('TIME_ZONE','Asia/shanghai');
//执行函数
date_default_timezone_set(TIME_ZONE);
echo date('Y-m-d H:i:s'); //2019-01-05 23:32:39
?>
6.time()获取当前的unix时间戳
<?php
$time=time();
print_r( $time); //1546702426
?>
7.时间处理:
“亚麻跌”是PHP学习时间处理的关键
Y 英文是 year,为年份代表年 ——亚
m 英文代表month,为月份代表——麻
d 英文代表day,为日期 代表——跌
H:m:s 代表的是:时分秒
h 的英文为:hour 代表小时
i的英文为:minute 代表分钟
s的英文为:second 代表秒
<?php
echo date('Y年m月d日');//2019年01月05日
?>
<?php
echo date('Y-m-d H:i:s'); //2019-01-05 15:38:45
?>
8.date函数用于将一个时间进行格式化输出,以方便时间的显示或存储。其语法格式如下:
string date ( string $forrnat [, int $tirnestamp] )
在参数列表中:
$timestamp是一个时间戳,函数将这个时间戳按$format规定的格式输出。
如果$timestamp没有输入值,则默认为当前的时间。
$format是一个时间输出格式的字符串,需要使用规定的字符构造输出格式。
date函数的格式参数表:
字符 | 说明 | 返回值 |
---|---|---|
d | 月份中的第几天,有前导零的2 位数字 | 01 到31 |
D | 英文星期几,3个字母 | Mon到Sun |
j | 月份中的第几天,没有前导零 | 1 到31 |
l(字母) | 英文星期几 | Sunday到 Saturday |
N | 1格式数字表示的星期 | 1(表示星期一)到7(表示星期天) |
S | 每月天数后面的英文后缀,2个字符 | st,nd,rd或者th。可以和jg一起用 |
w | 星期中的第几天,数字表示 | 0(表示星期天)到 6(表示星期六) |
z | 一年中的第几天 | 0到366 |
W | 年份中的第几周,每周从星期一开始 | 42(当年的第42周) |
F | 月份,完整的文本格式 | January 到 December |
m | 数字表示月份,有前导零 | 01 到 12 |
M | 3个字母缩写表示的月份 | Jan 到Dec |
n | 数字表示月份,没有前导零 | 1 到 12 |
t | 给定月份所应有的天数 | 28 到 31 |
L | 是否为闰年 | 如果是闰年为1,否则为o |
o | 格式年份数字 | 例如2007 |
Y | 4 位数字完整表示年份 | 例如1999或2008 |
y | 2 位数字表示的年份 | 例如99或08 |
a | 小写的上午和下午值 | am或pm |
A | 大写的上午和下午值 | AM或PM |
g | 小时,12小时格式,没有前导零 | 1到12 |
G | 小时,24小时格式,没有前导零 | 0 到 23 |
i | 有前导零的分钟数 | 00 到 59 |
s | 秒数,有前导零 | 00到59 |
e | 时区标识 | |
U | 从Unix纪元开始至今的秒数 | 长整型数字 |
<?php
//格式化时间
echo date('Y-m-d H:i:s',1546102426); //2018-12-29 16:53:46
?>
9.getdate获取当前系统时间
getdate用来获取当前系统的时间,或者获得一个时间戳的具体含义。时间戳是一个长整数,表示getdate的语法格式如下所示。
array getdate ([ int $timestamp = time() ] )
函数的返回值是一个根据timestamp得到的包含有时间信息的数组。如果没有参数,则会返回当前的时间。getdate返回的数组,键名包括时间和日期的完整信息。
键名 | 说明 | 返回值 |
---|---|---|
secnods | 秒 | 数字0到 59 |
minutes | 分钟 | 数字0到59 |
hours | 小时 | 数字 0到 23 |
mday | 月份中第几天 | 数字 1到 31 |
wday | 星期中第几天 | 数字0(表示星期天)到6(表示星期六) |
mon | 月份 | 数字 1 到 12 |
year | 年 | 4 位数字表示的完整年份 |
yday | 一年中第几天 | 数字0到365 |
weekday | 星期几的英文 | Sunday到 Saturday |
month | 月份的英文 | January 到 December |
0 | 自从Unix纪元开始的秒数 | 长整型数字 |
<?php
$mytime=getdate();
print_r( $mytime);
?>
效果:
Array
(
[seconds] => 1 //秒
[minutes] => 10 //分钟
[hours] => 17 //小时
[mday] => 18 //日
[wday] => 0 //星期中的第几天
[mon] => 1 //月
[year] => 2015 //年
[yday] => 17 //年中的第几天
[weekday] => Sunday //星期
[month] => January //月份
[0] => 1421597401 //时间戳
)
理解了getdate函数和返回的数组以后,就很容易取得当前的时间信息了。下面的代码就是用getdate函数取得时间信息,调用返回时间数组的值输出时间信息。
<?php
$mytime = getdate();
echo "年 :".$mytime['year']."\n";
echo "月 :".$mytime['mon']."\n";
echo "日 :".$mytime['mday']."\n";
echo "时 :".$mytime['hours']."\n";
echo "分 :".$mytime['minutes']."\n";
echo "秒 :".$mytime['seconds']."\n";
echo "一个小时中的第几钟 :".$mytime['minutes']."\n";
echo "这是一分钟的第几秒 :".$mytime['seconds']."\n";
echo "星期名称 :".$mytime['weekday']."\n";
echo "月份名称 :".$mytime['month']."\n";
echo "时间戳 :".$mytime[0]."\n";
?>
效果
年 :2019 月 :1 日 :5 时 :15 分 :45 秒 :11 一个小时中的第几钟 :45 这是一分钟的第几秒 :11 星期名称 :Saturday 月份名称 :January 时间戳 :1546703111
六: php日期验证函数
1.checkdate可以判断一个输出的日期是否有效。在实际的工作中,我们需要经常用于检测常用于用户提交表单的数据验证。
例如:验证用户输入的时间是否正确。
2.函数的语法格式如下:
bool checkdate ( int $month , int $day , int $year )
3.eg:下例中,我们就可以用一个代码来进行实验,写出一段真实的例子。试试2011年有没有2月29日。如果是有效的时间就返回真,如果不是有效的时间就返回假。
<?php
var_dump(checkdate(12, 31, 2018));//bool(true)
var_dump(checkdate(2, 29, 2011));//bool(false)
?>
七: php获取本地化时间戳函数
1. mktime()函数可以对一个日期和时间获得一个本地化时间戳。其语法格式如下所示:
int mktime (int $hour [, int $minute [, int $second [, int $month [, int $day [. int$year [, int $.is_dstl.l } ] ] 31 )
函数的参数分别表示:时、分、秒、月、日、年、是否为夏令时。在使用这个函数时,需要注意所列的参数要与函数的参数含义相同。例如,下面的代码实现了用mktime构造一个时间戳的功能。
<?php
echo mktime (13 ,15 , 30, 8,18, 2008) ;//1219065330
?>
2.mktime函数的返回结果是一个Unix时间戳,对用户的含义不大,常常与date函数一起完成时间的转换。
eg:
<?php
echo date("m-d-Y h:m:s")."\n";
echo date("m-d-Y h:m:s",mktime(10,15,35,date("m"),date("d"),date("Y")))."\n";
echo date("m-d-Y h:m:s",mktime(10,15,35,date("m"),date("d")-30,date("Y")))."\n";
?>
效果:
01-05-2019 03:01:34 01-05-2019 10:01:35 12-06-2018 10:12:35
3.我们使用的时候还经常需要使用到另外一个函数:strtotime()。它的语法格式如下:
int strtotime ( string $time [, int $now = time() ] )
它能将将英文文本的日期时间描述解析为 Unix 时间戳。
参数:
1.传入一个字符串的时间
2.可选参数为是否传入unix时间戳,如果不传则是当前的unix时间戳。
eg:
<?php
//now为现在的当前时间
echo strtotime("now")."<br />";
//2000年9月10日
echo strtotime("10 September 2000")."<br />";
//当前时间加一天
echo strtotime("+1 day")."<br />";
//当前时间加一周
echo strtotime("+1 week")."<br />";
//当前时间加一周2天4小时2秒
echo strtotime("+1 week 2 days 4 hours 2 seconds")."<br />";
//下一个星期四
echo strtotime("next Thursday")."<br />";
//上一个星期一
echo strtotime("last Monday")."<br />";
?>
效果:
1546703523
968544000
1546789923
1547308323
1547495525
1547078400
1546214400
八: php 程序执行时间检测
1.我们有的时经常需要做程序的执行时间执行效率判断。
2.实现的思路如下:
<?php
//记录开始时间
//记录结整时
// 开始时间 减去(-) 结束时间 得到程序的运行时间
?>
3.mixed microtime ([ bool $get_as_float ] )
1).microtime()这个函数,能够返回当前 Unix 时间戳和微秒数。
2).参数:如果你传入true的话,将会返回一个浮点类型的时间,这样方便参与运算。
4.eg:我们来模拟一个检测函数执行时间的例子,测试某个函数效率的快慢:
<?php
//开始时间
$time_start = microtime(true);
//循环一万次
for($i = 0 ; $i < 10000000 ; $i++){
//你可以用上,mktime() 生成一个昨天的时间
//再用strtotime() 生成一个昨天的时间
//对比两个函数认的效率高
}
//结整时间
$time_end = microtime(true);
//相减得到运行时间
$time = $time_end - $time_start;
echo "这个脚本执行的时间为 $time seconds\n";
?>
效果:
这个脚本执行的时间为 0.20269584655762 seconds
九: php字符串常用函数
1.数组、字符串和数据库是我们函数里面最、最、最常用的三类函数
2.PHP常用函数:
函数名 | 描述 | 实例 |
---|---|---|
trim() | 删除字符串两端的空格或其他预定义字符 | "$str = "\r\nHello World!\r\n"; echo trim($str); |
rtrim() | 删除字符串右边的空格或其他预定义字符 | "$str = "Hello World!\n\n"; echo rtrim($str);" |
chop() | rtrim()的别名 | 同上 |
ltrim() | 删除字符串左边的空格或其他预定义字符 | "$str = "\r\nHello World!"; echo ltrim($str);" |
dirname() | 回路径中的目录部分(我们把它归在了字符串函数里了) | echo dirname("c:/testweb/home.php"); |
str_pad() | 把字符串填充为指定的长度 | $str = "Hello World"; echo str_pad($str,20,"."); |
str_repeat() | 重复使用指定字符串 | echo str_repeat(".",13); |
str_split() | 把字符串分割到数组中 | print_r(str_split("Hello")); |
strrev() | 反转字符串 | echo strrev("Hello World!"); |
wordwrap() | 按照指定长度对字符串进行折行处理 | "$str = ""An example on a long word is: Supercalifragulistic""; echo wordwrap($str,15);" |
str_shuffle() | 随机地打乱字符串中所有字符 | echo str_shuffle("Hello World"); |
parse_str() | 将字符串解析成变量 | "parse_str("id=23&name=John%20Adams",$myArray); print_r($myArray);" |
number_format() | 通过千位分组来格式化数字 | "echo number_format("1000000"); echo number_format("1000000",2); echo number_format("1000000",2,"","",""."");" |
strtolower() | 字符串转为小写 | echo strtolower("Hello WORLD!"); |
strtoupper() | 字符串转为大写 | echo strtoupper("Hello WORLD!"); |
ucfirst() | 字符串首字母大写 | echo ucfirst("hello world"); |
ucwords() | 字符串每个单词首字符转为大写 | echo ucwords("hello world"); |
htmlentities() | 把字符转为HTML实体 | $str = ""John & 'Adams'""; echo htmlentities($str, ENT_COMPAT); |
htmlspecialchars() | 预定义字符转html编码 | |
nl2br() | \n转义为 标签 | echo nl2br("One line.\nAnother line."); |
strip_tags() | 剥去 HTML、XML 以及 PHP 的标签 | echo strip_tags("Hello world!"); |
addcslashes() | 在指定的字符前添加反斜线转义字符串中字符 | $str = ""Hello, my name is John Adams." echo $str; echo addcslashes($str,'m');" |
stripcslashes() | 删除由addcslashes()添加的反斜线 | echo stripcslashes("Hello, \my na\me is Kai Ji\m."); |
addslashes() | 指定预定义字符前添加反斜线 | $str = "Who's John Adams?";echo addslashes($str); |
stripslashes() | 删除由addslashes()添加的转义字符 | echo stripslashes("Who\'s John Adams?"); |
quotemeta() | 在字符串中某些预定义的字符前添加反斜线 | $str = "Hello world. (can you hear me?)"; echo quotemeta($str); |
chr() | 从指定的 ASCII 值返回字符 | echo chr(052); |
ord() | 返回字符串第一个字符的 ASCII值 | echo ord("hello"); |
strcasecmp() | 不区分大小写比较两字符串 | echo strcasecmp("Hello world!","HELLO WORLD!"); |
strcmp() | 区分大小写比较两字符串 | |
strncmp() | 比较字符串前n个字符,区分大小写 | |
strncasecmp() | 比较字符串前n个字符,不区分大小写 | int strncasecmp ( string $str1 , string $str2 , int $len ) |
strnatcmp() | 自然顺序法比较字符串长度,区分大小写 | int strnatcmp ( string $str1 , string $str2 ) |
strnatcasecmp() | 自然顺序法比较字符串长度,不区分大小写 | int strnatcasecmp ( string $str1 , string $str2 ) |
chunk_split() | 将字符串分成小块 | str chunk_split(str $body[,int $len[,str $end]]) |
strtok() | 切开字符串 | str strtok(str $str,str $token) |
explode() | 使用一个字符串为标志分割另一个字符串 | array explode(str $sep,str $str[,int $limit]) |
implode() | 同join,将数组值用预订字符连接成字符串 | string implode ( string $glue , array $pieces ) |
substr() | 截取字符串 | string substr ( string $string , int $start [, int $length ] ) |
str_replace() | 字符串替换操作,区分大小写 | mix str_replace(mix $search,,mix $replace,mix $subject[,int &$num]) |
str_ireplace() | 字符串替换操作,不区分大小写 | mix str_ireplace ( mix $search , mix $replace , mix $subject [, int &$count ] ) |
substr_count() | 统计一个字符串,在另一个字符串中出现次数 | int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] ) |
substr_replace() | 替换字符串中某串为另一个字符串 | mixed substr_replace ( mixed $string , string $replacement , int $start [, int $length ] ) |
similar_text() | 返回两字符串相同字符的数量 | int similar_text(str $str1,str $str2) |
strchr() | 返回一个字符串在另一个字符串中开始位置到结束的字符串 | string strstr ( string $str, string $needle , bool $before_needle ) |
strrchr() | 返回一个字符串在另一个字符串中最后一次出现位置开始到末尾的字符串 | string strrchr ( string $haystack , mixed $needle ) |
stristr() | 返回一个字符串在另一个字符串中开始位置到结束的字符串,不区分大小写 | string stristr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) |
strtr() | 转换字符串中的某些字符 | string strtr ( string $str , string $from , string $to ) |
strpos() | 寻找字符串中某字符最先出现的位置 | int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) |
stripos() | 寻找字符串中某字符最先出现的位置,不区分大小写 | int stripos ( string $haystack , string $needle [, int $offset ] ) |
strrpos() | 寻找某字符串中某字符最后出现的位置 | int strrpos ( string $haystack , string $needle [, int $offset = 0 ] ) |
strripos() | 寻找某字符串中某字符最后出现的位置,不区分大小写 | int strripos ( string $haystack , string $needle [, int $offset ] ) |
strspn() | 返回字符串中首次符合mask的子字符串长度 | int strspn ( string $str1 , string $str2 [, int $start [, int $length ]] ) |
strcspn() | 返回字符串中不符合mask的字符串的长度 | int strcspn ( string $str1 , string $str2 [, int $start [, int $length ]] ) |
str_word_count() | 统计字符串含有的单词数 | mix str_word_count(str $str,[]) |
strlen() | 统计字符串长度 | int strlen(str $str) |
count_chars() | 统计字符串中所有字母出现次数(0..255) | mixed count_chars ( string $string [, int $mode ] ) |
md5() | 字符串md5编码 | $str = "Hello"; echo md5($str) |
iconv | ||
mb_substr | 获取字符串的部分 | string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) |
mb_http_output | 设置/获取 HTTP 输出字符编码 | mixed mb_http_output ([ string $encoding = mb_http_output() ] ) |
mb_strlen | 获取字符串的长度 | mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] ) |
iconv | 字符串按要求的字符编码来转换 | string iconv ( string $in_charset , string $out_charset , string $str ) |
iconv_substr | 截取字符串的部分 | |
iconv_get_encoding | 获取 iconv 扩展的内部配置变量 | |
mb_substr_count | 统计字符串出现的次数 | |
mb_check_encoding | 检查字符串在指定的编码里是否有效 | |
mb_strrpos | 查找字符串在一个字符串中最后出现的位置 | |
mb_split | 使用正则表达式分割多字节字符串 | |
parse_url | 解释URL成为一个数组 |
注:mb_* 和iconv_* 他们可以处理多字节字符,例如:中文。
中文主要用的是GBK和utf-8两种编码格式。
GBK和utf-8是两个不同的编码委员会对于汉字进行的编码的标准。
他们规定GBK是双字节,也就是一个汉字占用2Bytes。
utf-8是三字节,一个汉字占用三个字节长度的存储空间。
eg:
<?php
var_dump(trim('php.cn'));//string(6) "php.cn"
?>