5.1 字符串声明方法
定义方法:
双引号
$num=1000;
$str="2222$num222";
$str="sss${num}sss";
$str="aa".$num;
$str="this is /"str/"";
单引号(1.不能在单引号的字符串内执行变量;2.只能使用部分转义字符(/',//))
$num=100;
$str='this is string ';
反引号``(在反引号里使用的是服务器的命令)
$a=`ipconfig /all`;
定界符(和双引号一样,但可以在里面使用任何多的双引号)
$num=1000;
$str=<<<here
aaa"a"aa$num/n
bbbbbbbb
cccccccccc
here;
5.2 字符串处理函数应用
输出函数:
1.echo()//echo "aa","bb";
2.print()//print "aaaa";
3.die()//调用完自动退出程序
4.printf()//$num=100.99;printf("%s--%d--%b--%x--%o--%c--%X--
%.2f",$num,$num,$num,$num,$num,$num,$num,$num);
//printf("%'_-30s", num)
5.sprintf()//$str=sprintf("%s--%d--%b--%x--%o--%c--%X--
%.2f",$num,$num,$num,$num,$num,$num,$num,$num);echo $str;
6.print_r()//输出数组数据
7.var_dump()//打印数据类型,也可以打印字符串
格式化字符串函数
去空格:
ltrim(string);返回去掉字符串的左空格
rtrim(string);返回去掉字符串的右空格
trim(string);返回去掉完字符串的两边空格
strrev(string);将字符串前后颠倒
strtolower(string);转为小写
stroupper(string);转为大写
strlen(string);求字符串长度
ucfirst(string);将字符串的第一个字符改为大写
ucwords(string);将字符串的每个单词第一个字母改为大写
explode(string separator,string string [,int limit]);使用一个字符串分割另一个字符串
implode(string glue,array pieces);用一组较小的字符串创建一个大字符串,join()跟这个用法一样
substr(string string ,int start,[,int length]);取部分字符串
strstr(string,string);返回字符中某字符串开始的字符串到结束的字符串
strpos(string,char,[,int offset]);返回字符串中某字符最先出现的位置
strrpose();返回字符串是某字符最后出现的位置
str_pad(string str,int length,string add,[STR_PAD_LEFT])字符串的填补函数
字符串比较
按字节进行字符串比较
strcmp();
<?php
$str1="hello";
$str2="hello";
if(strcmp($str1,$str2)==0){
echo $str1."等于".$str2;
}
?>
strcasecmp():不区分大小比较
strnatcmp():按自然排序法进行字符串比较
例:$arr=array("photo1"," photo2","photo12");
soundex():字符串的模糊比较(发音是否相同)
similar_text():返回匹配的个数
str_replace(string ,string,string):替换字符串
str_replace(array,string,string)
str_replace(array,array,string)
strtr(string,string from,string to ):字符串的翻译函数
stripslashes():去掉引号
addslashes()
htmlentities()z:处理HTML标签符号
htmlspecialchars();
strip_tags():去掉HTML标签
URL字符串的解析处理
parse_str();
parse_url();
URL编码处理函数
rawurlencode();
urlencode();
urldecode();
构造查询字符串等
http_build_query();
<?php
$str=" abc ";
echo strlen($str);
$newstr=ltrim($str);
echo strlen(newstr);
?>
6.1 数组的声明
数组是一个可以存储一组或一系列数值的变量
1.可以存储任何类型的数据;
2.长度可以变长
数组的声明
PHP数组分两类
索引数组:数组的索引值是整数,0开始
<?php
$arr[0]=100;
$arr[1]=200;
$arr[2]=300;
$arr[3]=400;
/*
$arr[]=100;
$arr[]=200;
$arr[1]=300;//覆盖前面的200
$arr[]=400;
*/
echo count($arr);
print_r($arr);
?>
关联数组:数组以字符串做为索引值
<?php
//关联下标不会影响到数值索引下标
$person[0]=0;
$person["name"]="张三";
$person["age"]=20;
$person["gender"]="男";
print_r($person);
?>
<?php
$arr=array(1,2,"one,3.33",true);
$arr1=array("name"=>" 张三","age"=>22)
?>
二维数组:array(array(),array(),...)
$arr=array(array(1,2,3,4),array(5,6,7,8),arry("a","b","c"));
$arr1["zhangsan"][1]=10;
$arr1["zhangsan"][3]=20;
$arr1[2][1]=21;
$arr2[2][2]=22;
6.2 数组的常用遍历方式
for(只适用于连续下标的数组),foreach
<?php
$arr=array(1,2,3,"abc"=>"one");
foreach($arr as $key=>$value)
{
echo "/$arr[".$key."]=".$value."<br>";
}
?>
while each
<?php
$arr=array(1,2,3,"abc"=>"one");
//只能遍历一次, 游标每次都会自动移动
while($a=each($arr)){
echo "下标".$a[o]."---".$a["key"]."<br>";
echo "值".$a[1]."---".$["value"]."<br>";
}
?>
list
<?php
$arr=array(1,2,3);
//如果数组是关联数组,只有变量名与KEY相同才能成功赋值
list($a,$b,$c)=$arr;
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
while(list($key,$value)=each($arr)){
echo $key."=>".$value."<br>";
}
?>
6.3 数组相关处理函数
<?php
/* current(数组的名称) 返回当前下标内容 key(数组的名称)返回当前下标名称
* 两者不会自动移动
*
* next(数组的名称),prev();end(),reset();
*
* count(),sizeof()
*
* array_change_key_case(目标数组,形态常数) CASE_UPPER CASE_LOWER
*
* array_chunk(目标数组,索引个数,[boolean])分解成多个数组
*
* array_count_values(数组名称) 统计内容出现的次数
*
* array_fill(起始索引位置,区段大小,指定字元) 用于初始化数组
*
* array_filter(目标数组,使用者定义的函数) 过滤函数
*
* array_walk()
*
* array_map(回调函数,目标数组)
*
* array_flip(目标数组 )
*
* array_sum(目标数组)
*
* array_unique()
*
* array_values() 返回数组中所有的值,忽略KEY,重新用数字索引返回
* array_keys() 返回数组中的所有KEY
*
* in_array(检索的元素,数组 [,是否严格按数据类型进行检索]) 寻找某值是否在数组中,返回布尔型
* array_search(检索的元素,数组) 返回数组中该元素的KEY
* array_key_exists(要检查的KEY,数组) 返回布尔值
*
* extract(数组) 将数组(只能是关联数组)转换为变量,其中KEY变为变量名
* compact(变量,变量...) 将变量转换为数组,变量名变成数组的KEY
*
* 数组与栈 array_push(数组,元素,元素...), array_pop()
*
* 数组与队 array_unshift(数组,元素) array_shift()
*
* 忽略键名的数组排序
* sort()
* rsort()
* usort()
* 保留键名的数组排序
* asort()
* arsort()
* uasort()
* 通过键名对数组进行排序
* ksort()
* krsort()
* uksort()
*自然排序法排序
* natsort()
* natcasesort()
*
* 数组计算函数
* array_sum()
* array_merge() 合并数组
* array_merge_recursive()
* array_diff()
* array_diff_assoc()
* array_intersect()
* array_intersect_assoc()
*/
$arr=array("one"="one","two")
$a=current($arr);
var_dump($a);
next($arr);
echo key($arr)."=>".current($arr);
echo "<br>";
?>