本地环境搭建,选用wamp集成软件,编辑器选用notepad++,项目放在C:\wamp\www\wendy目录下,新建index文件,经过http://localhost/wendy/index,经过编写实例熟悉PHP经常使用函数。php
一,字符串经常使用函数学习数组
//在UTF-8编码中,一个英文字母字符存储须要1个字节,一个汉字字符储存须要3到4个字节编辑器
//获取部分字符串mb_substr,按字符函数
//在UTF-8编码中,一个英文字母字符存储须要1个字节,一个汉字字符储存须要3到4个字节学习
1.获取部分字符串mb_substr,按字符测试
echo mb_substr('hanyunihao',1,2);this
/**编码
*从第一位开始取两位加密
*输出结果an.net
*
*/
echo mb_substr('hanyunihao',0,-2);
/**
*去掉最后两位
*输出结果hanyunih
*
*/
echo mb_substr('hanyunihao',-5,2);
/**
*从倒数第五位开始取两位
*输出结果ni
*
*/
echo mb_substr('韩大你好',1,3);
/**
*输出结果大你好
*
*/
2.获取部分字符串mb_strcut,按字节
echo mb_strcut('韩大你好',1,7);
/**
*输出结果韩大
*
*/
3.获取内部编码 mb_internal_encoding
// mb扩展是php的一个处理宽字符(例如:中文,日文,韩文等)函数库
echo mb_internal_encoding();
/**
*输出结果UTF-8
*
*/
4.str_replace//适用数组和字符串
echo str_replace("hanyu","wanzi","hanyunihao");
/**
*中间为替换量,须要三个参数,可选择四个,能够替换一个或多个变量,可用于去除换行符
*输出结果wanzinihao
*/
$res = "he is handsome !";
$old = array("he","handsome");
$new = array("she","good");
echo str_replace($old,$new,$res);
/**
*输出结果she is good !
*/
echo str_replace("h","sh","he is handsome",$count);
/**
*输出结果she is shandsome;
*/
5.str_replace("h","sh","he is handsome",$count);
echo $count;
/**
*输出结果2;
*/
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
/**
*输出结果F;
*/
//str_ireplace 不区分大小写
6.substr_replace ,必传入3个参数,第四个可不传,后面两个决定替换哪些内容
res = "he is handsome !";
echo substr_replace($res,"sh",0);
/**
*sh代替整个字符串
*输出结果sh;
*/
echo substr_replace($res,"sh",0,1);
/**
*从0开始替换两个字符
*输出结果she is handsome;
*/
echo substr_replace($res,"sh",0,-5);
/**
*sh距离结尾有五个长度
*输出结果shome !;
*/
echo substr_replace($res,"sh",6,-5);
/**
*插入字符串距离开始六个长度,结尾五个长度
*输出结果he is shome !
*/
7.mb_strlen 获取字符串的长度
$res = "he is handsome !";
echo mb_strlen($res);
/**
*输出结果16
*/
$res = "你好,欢迎来到武汉!";
echo strlen($res);
/**
*字节长度
*输出结果29
*/
$res1 = "你好,欢迎来到武汉!";
echo mb_strlen($res);
/**
*字符长度
*输出结果10
*/
echo iconv_strlen($res1,'UTF-8');
/**
*iconv函数能够将一种已知的字符集文件转换成另外一种已知的字符集文件
*输出结果10
*/
echo iconv_strlen($res1);
/**
*输出结果10
*/
8.Mcrypt加密扩展
//mcrypt_generic 加密
//mcrypt_generic_deinit 解密
9.strops查找字符串首次出现的位置,可看一个字符串是否在另外一个字符串中
echo strpos('hanyunihao','yun');
/**
*从0开始计算
*输出结果3
*
*/
echo strpos('hanyunihao','a',4);
/**
*从偏移量开始算
*输出结果8
*
*/
$pos=strpos('hanyunihao','m');
var_dump($pos);
/**
*从第一位开始取两位,用 === 运算符来测试此函数的返回值。
*输出结果false
*
*/
$pos = strpos('hanyunihao','yun');
if ($pos !== false) {
echo "success";
}
/**
*使用 !== 操做符。
*输出结果success
*
*/
if ($pos !=false) {
echo "false";
}
/**
*由于 'a' 的位置是 0。语句 (0 != false) 的结果是 false。
*输出结果false
*
*/
10.strrpos 指定字符串在目标字符串中最后一次出现的位置
echo strrpos('hanyunihao','a');
/**
*输出结果8
*/
11.strrev()字符串反转
echo strrev("you are handsome");
/**
*输出结果emosdnah era uoy
*/
二,数组学习
1.str_split
$str="this is my best friend";
print_r( str_split($str,5));
/**
*每五个字符串打散成数组
*输出结果Array ( [0] => this [1] => is my [2] => best [3] => frie [4] => nd )
*
*/
print_r( str_split($str,0.5));
/**
*输出结果false
*
*/
$str2="他是个人好朋友";
print_r( str_split($str2,5));
/**
*按字节数转换,而非字符数。
*输出结果Array ( [0] => 他� [1] => �我� [2] => ��好 [3] => 朋� [4] => � )
*/
2.preg_split
$str='http://blog.csdn.net/hsd2012/article/details/51152810';
$pattern='/\//';
$str=preg_split ($pattern, $str);
print_r($str);
/**
*按照/分割。preg按照正则规则
*输出结果Array ( [0] => http: [1] => [2] => blog.csdn.net [3] => hsd2012 [4] => article [5] => details [6] => 51152810 )
*/
3.explode
$str = "this is my friend";
$res = explode("s",$str);
print_r($res);
/**
*按照s分割,s不显示
*输出结果Array ( [0] => thi [1] => i [2] => my friend )
*/
$res = explode("",$str);
print_r($res);
/**
*分割位置为空
*输出结果false
*/
$res = explode(" ",$str);
print_r($res);
/**
*按空格分割
*输出结果Array ( [0] => this [1] => is [2] => my [3] => friend )
*/
4.implode
$array = array('this', 'is', 'my');
$str = implode(";", $array);
print_r($str);
/**
*按照分号隔开
*输出结果this;is;my
*/
5.array_combine 操做两个数组,一个数组值作为键名,一个数组值做为键值,两个数组元素个数必须一致
$a = array('my','name','wendy');
$b = array('her','age','18');
$c = array_combine($a, $b);
print_r($c);
/**
*输出结果Array ( [my] => her [name] => age [wendy] => 18 )
*/
6.array_merge 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回做为结果的数组。
$array1=array('boy'=>'poll','1'=>'wuhan');
$array2=array('boy'=>'jack','1'=>'math','girl'=>'rose');
$res = array_merge($array1,$array2);
print_r($res);
/**
*字符串被覆盖,数字键名不会被覆盖,键名从新排列
*输出结果Array ( [boy] => jack [0] => wuhan [1] => math [girl] => rose )
*/
7.array_merge_recursive
/**
*字符串被覆盖,数字键名不会被覆盖,键名从新排列
*输出结果Array ( [boy] => jack [0] => wuhan [1] => math [girl] => rose )
*1.对于相同的字符串索引,
*array_merge则会用后面的值覆盖前面出现的值;
*+会用前面出现过的值覆盖后面相同的key;
*array_merge_recursive则会把相同的索引放到一个数组里面,增长数组的维度;
*2.对于相同的数字索引,
*array_merge则会给重复的值重建索引(索引值从0开始);
*+仍然是用前面出现过的值覆盖后面的值;
*/
$array1=array('boy'=>'poll','1'=>'wuhan');
$array2=array('boy'=>'jack','1'=>'math','girl'=>'rose');
print_r(array_merge_recursive($array1,$array2));
/**
*相同的索引放到一个数组里面,增长数组的维度;
*输出结果Array ( [boy] => Array ( [0] => poll [1] => jack ) [0] => wuhan [1] => math [girl] => rose )
*/
8.array_slice 从数组中取出一段
print_r(array_slice($array2,-2,2,true));
/**
*保留数字键,从倒数第二个开始,具备两个单元格
*输出结果Array ( [1] => math [girl] => rose )
*/
9.array_change_key_case 将数组键名改成大写或小写
$example = array('this'=>1,'Is'=>2,'my'=>3,'fRiend'=>4);
print_r(array_change_key_case($example,CASE_UPPER));
/**
*可设置大小写
*输出结果Array ( [THIS] => 1 [IS] => 2 [MY] => 3 [FRIEND] => 4 )
*/
$example = array('this'=>1,'Is'=>2,'is'=>3,'fRiend'=>4);
print_r(array_change_key_case($example,CASE_LOWER));
/**
*键一致后前面的会被覆盖
*输出结果Array ( [this] => 1 [is] => 3 [friend] => 4 )
*/
10.array_chunk 将一个数组分红多个
$example = array('this'=>1,'Is'=>2,'my'=>3,'fRiend'=>4);
print_r(array_chunk($example,3));
/**
*键名重置,默认是false,若设置为true,保留键名
*Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [1] => Array ( [0] => 4 ) )
*/
11.array_column 返回数组中某一列
$example = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
),
array(
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
),
array(
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
)
);
print_r(array_column($example,'id'));
/**
*输出结果Array ( [0] => 2135 [1] => 3245 [2] => 5342 [3] => 5623 )
*/
print_r(array_column($example,'id','first_name'));
/**
*新数组键名键值均为原数组的键值。
*Array ( [John] => 2135 [Sally] => 3245 [Jane] => 5342 [Peter] => 5623 )
*/
12.array_diff 计算数组差值
$example = array('this'=>1,'Is'=>2,'my'=>3,'fRiend'=>4);
$last = array('th'=>1,'Is'=>3,'hei'=>5,'fiend'=>4);
print_r(array_diff($example,$last));
/**
*在数组1中不在数组2中的值,只比较键值。
*输出结果Array ( [Is] => 2 )
*/
13. array_diff_assoc()
print_r(array_diff_assoc($example,$last));
/**
*添加索引,根据索引一一对应比较,键名也对比
*输出结果Array ( [this] => 1 [Is] => 2 [my] => 3 [fRiend] => 4
*/
14.array_unique 移除数组中重复的值
$example=array('a'=>"he","is",'c'=>"is",'m'=>"good");
print_r(array_unique($example));
/**
*输出结果Array ( [a] => he [0] => is [m] => good )
*/
15.array_count_values 统计数组中全部的值
print_r(array_count_values($example));
/**
*数组的键是 array 里单元的值; 数组的值是 array 单元的值出现的次数。
*输出结果Array ( [he] => 1 [is] => 2 [good] => 1 )
*/
16.array_values 返回含全部值的索引数组。
print_r(array_values($example));
/**
*键名为数值
*输出结果Array ( [0] => he [1] => is [2] => is [3] => good )
*/
17.shuffle 打乱数组
var_dump(shuffle($example));
/**
*成功时返回布尔型变量
*输出结果true;
*/
$example = array("he","is","is","good");
shuffle($example);
print_r($example);
/**
*成功时返回布尔型变量
*输出结果Array ( [0] => is [1] => is [2] => good [3] => he )
*/
18.array_unshift 在数组开头插入一个或多个单元 $example=array('a'=>"he","is",'c'=>"is",'m'=>"good");array_unshift($example,"hi","boy");print_r($example);/**;*返回值为数组长度,原数组在数组开头插入;*输出结果Array ( [0] => hi [1] => boy [a] => he [2] => is [c] => is [m] => good )*/ ;19.array_push 在末尾插入元素$example1=array('a'=>"he","is",'c'=>"is",'m'=>"good");array_push($example1,"hi","boy");print_r($example1);/***输出结果Array ( [a] => he [0] => is [c] => is [m] => good [1] => hi [2] => boy )*/ ;20.array_pop 末尾元素弹出$example2=array('a'=>"he","is",'c'=>"is",'m'=>"good");array_pop($example2);print_r($example2);/***输出结果Array ( [a] => he [0] => is [c] => is )*/