第23 字符串的处理
一、字符串的格式化
chop()函数移除字符串后面多余的空白,包括新行。//这个不重要
ltrim()函数移除字符串起始处多余空白。//只清理左边
rtrim()函数移除字符串后面多余的空白,包括新行,此函数是chop()的别名。//只清理右边
trim()函数移除字符串两边多余的空白。
<?php
echo trim(' php ');
?>
nl2br()函数将字符串作为输入参数,用XHTML中的<br />标记代替字符串中的换行符。
echo nl2br("this is a test\nthist a testsss");
//这里必须使用""双引号来解析字符,不能使用单引号。
//将所有字符转HTML元素
$str='<strong>dbs</strong>';
echo htmlspecialchars($str);
echo htmllentities($str); //不常用
echo strip_tags($str); //去除Html元素
$str='this is a teacher \n';
$a=addslashes($str);
echo $a;
可以重新格式化字符串中的字母大小写。
stroupper()函数将字符串转换为大写。
strolower()函数将字符串转换成小写。
ucfirst()函数将第一个字母转换为大写。
ucwords()函数将每个单词第一个字母转换为大写
echo strtoupper('qq@126.com');
填充字符串函数:str_pad()将字符串用指定个数的字符填充字符串。
echo str_pad('Ssssd',10).'is good.';
二、操作子字符串:
使用函数explode()、implode()和join()
explode()切开字符串,使一个字符串分割另一个字符串。
$email_array=explode('@','136882447@qq.com');
print_r($email_array); //切割@两边,@去除。
----
$email=explode('@','136882447@qq.com');
$str=implode('@',$email);
echo $str; //相互转换的函数。
----
$str='i,will.be#back';
$tok=strtok($str,' ');
echo $tok;
$tok=strtok($str,' ');
echo $tok;
-----
使用substr()函数
函数substr()允许我们访问一个字符串给定起点和终点的子字符串。这个函数并不适用于我们的例子中,但是,当需要得到某个固定格式字符串中的一部份时,它会非常有用。
echo substr("abcdef",1,3); //结果为bcd
//从1位后开始取3个。
$string = 'abcdef';
echo $string{0}; // a
echo $string{3}; // d
echo $string{strlen($string)-1}; // f
$str='this is a test';
print_r(str_split($str));
//拆开,变成数组。
逆置字符串:strev()可以将一个字符串逆反过来。
echo strrev('htis is a test'); //面试就出来这个题了
三。字符串比较
实现1000以内的素数打印。
<?php
$isPrime = true;
echo "素数:";
for($i = 2;$i < 1000;$i++){
for($j = 2;$j <= intval(sqrt($i));$j++){
if($i % $j == 0){
$isPrime = false;
break;
}
$isPrime = true;
}
if($isPrime){
echo $i." ";
}
}
?>
第10章 数组
第1种
$usernames=array('124','1234');
echo $usernames[0];
print_r($usernames); //可以打印出数组
第二种
通过range 建立包含指定数组
$numbers=range(1,10);
print_r($numbers);
$n=range(A,Z);
print_r($n);
$n[5]='dbs'; //可以改变赋值
echo $[5];
$n=array('12','22','33','44');
//通过循环显示数组里的所有值
for($i=0;$i<6;$i++){
echo $n[$i];
}
----
$n=array('白光月','在我想起来','你','大海','爱上你是一个错');
for ($i=0;$i<=5;$i++){
echo $n[$i];
echo "<br />";
}
----
统计数组:
count函数 计算数组中的单元数目或对象中的属性个数
echo count($n); //统计数组
for($i=0;$i<count($n);$i++){
echo ($i+1).'===='.$n[$i];
}
也可以foreach循环来遍历数组,不需要考虑key
foreach($n as $变量随便写){
echo $value.'<br />';
}
-----------
foreach ($n as $key=>$value){
echo $key.'<br />';
}
显示的结果为:0 1 2 3 4 显示key
if(is_array($n)){
foreach($n as $key=>$value){
echo $key;
}
第10章 数组
第1种
$usernames=array('124','1234');
echo $usernames[0];
print_r($usernames); //可以打印出数组
第二种
通过range 建立包含指定数组
$numbers=range(1,10);
print_r($numbers);
$n=range(A,Z);
print_r($n);
$n[5]='dbs'; //可以改变赋值
echo $[5];
$n=array('12','22','33','44');
//通过循环显示数组里的所有值
for($i=0;$i<6;$i++){
echo $n[$i];
}
----
$n=array('白光月','在我想起来','你','大海','爱上你是一个错');
for ($i=0;$i<=5;$i++){
echo $n[$i];
echo "<br />";
}
----
统计数组:
count函数 计算数组中的单元数目或对象中的属性个数
echo count($n); //统计数组
for($i=0;$i<count($n);$i++){
echo ($i+1).'===='.$n[$i];
}
也可以foreach循环来遍历数组,不需要考虑key
foreach($n as $变量随便写){
echo $value.'<br />';
}
-----------
foreach ($n as $key=>$value){
echo $key.'<br />';
}
显示的结果为:0 1 2 3 4 显示key
if(is_array($n)){
foreach($n as $key=>$value){
echo $key;
}
加两个感叹号,是这真值转换为布尔值。
while($a=each($userages)){
}
each()//取得当前数组,打包成一个新的数据。
list()
array_unique() //移除数组中重复的值。
$a=array(2,34324,3434,33,33,3,3,2,2,5,5);
$b=array_unique($a);
print_r($b);
---
第10章 数组
第1种
$usernames=array('124','1234');
echo $usernames[0];
print_r($usernames); //可以打印出数组
第二种
通过range 建立包含指定数组
$numbers=range(1,10);
print_r($numbers);
$n=range(A,Z);
print_r($n);
$n[5]='dbs'; //可以改变赋值
echo $[5];
$n=array('12','22','33','44');
//通过循环显示数组里的所有值
for($i=0;$i<6;$i++){
echo $n[$i];
}
----
$n=array('白光月','在我想起来','你','大海','爱上你是一个错');
for ($i=0;$i<=5;$i++){
echo $n[$i];
echo "<br />";
}
----
统计数组:
count函数 计算数组中的单元数目或对象中的属性个数
echo count($n); //统计数组
for($i=0;$i<count($n);$i++){
echo ($i+1).'===='.$n[$i];
}
也可以foreach循环来遍历数组,不需要考虑key
foreach($n as $变量随便写){
echo $value.'<br />';
}
-----------
foreach ($n as $key=>$value){
echo $key.'<br />';
}
显示的结果为:0 1 2 3 4 显示key
if(is_array($n)){
foreach($n as $key=>$value){
echo $key;
}
加两个感叹号,是这真值转换为布尔值。
while($a=each($userages)){
}
each()//取得当前数组,打包成一个新的数据。
list()
array_unique() //移除数组中重复的值。
$a=array(2,34324,3434,33,33,3,3,2,2,5,5);
$b=array_unique($a);
print_r($b);
---
$p=array(array('小米',5,25.),array('小米',5,25.),array('小米',5,25.));
print_r($p);
print_r($p[0]); //打印多维数组的第一个数组。
-------
第14课
sort 对数组进行排序
$f=array('banner','orange','apple');
print_r($f);
echo "<br />";
sort($f); //按字母顺序,按数字升序
sort($f,SORT_STRING); //加这个参数是按键的值进行排序的。
sort($f,SORT_NUMERIC); //默认
print_r($f);
-----
asort对数组进行排序并保持索引的关系。
Array ( [2] => apple [0] => banner [1] => orange ) ,这叫保持索引关系。
----
ksort 对数组按键名排序。
$f=array('c'='banner','a'=>'orange','b'=>'apple');
ksort($f);
print_r($f);
显示为a=>orange b=>apple c=>banner
-----
sort() asort() ksort() 都是正向排序
rsort() arsort krsort() 逆序排列
-----
shuffle() 将数组进行随机排列
$pic=array('1.jpg','2.jpg','3.jpg','4.jpg','5.jpg');
shuffle($pic); //只要加上这个,就会将数组随机进行打乱。
$a=arrray_reverse($pic);//对数组进行反向排序。
//以array开头的函数,是会新创建一个新的数组,对其赋值。
for($i=0;$i<3;$i++){
echo '<img src="$pic[$i]" />'; //打印前几张图片。
echo "\n";
第15课
array_unshift()函数将新元素添加到数组头,array_push()函数将每个元素添加到数组的末尾。
array_shift()删除数组头第一个元素,与其相反的函数是array_pop(),删除并返回数组末尾的一个元素。
array_rand()返回数组中的一个或多个键。
---
$a=array('dbs');
print_r($a);
array_unshift($a,'ftjbdjkd');//在开头插入数据
print_r($a); //插入新的数组值。
------
array_push()//在结尾插入数据。
array_shift($a) //删除开头的元素。
array_pop($b);
$a=array_rand($f,1); //第二个参数代表随机获取个数。
echo $a[0];
===============
五 数组指针的操作。
$f=array('c'='banner','a'=>'orange','b'=>'apple');
echo current($f); //获取指针当前的元素。
//默认情况下指针在第一条数据上。
echo next($f); //将数组指针指向下一个。
echo reset($f);//将指针还原第一个
echo prev($f); //将指针回头一位。
六 统计数组的个数。
echo sizeof($f); //数组的个数
$f=array('dbs'=>1234,'djkd'=>'dlk');
echo array_count_values($f); //统计数组中所有值出现的次数
,也就是有下标值的。
七 将数组转换成标量变量。
extract 从数组中将变量导入到当前的符号表。
$array=array('a'=>'apple','c'=>'ccc','b'=>'banner');
extract($f);
echo $a $b $c ;