这个项目当作是热身,php作为一种后端的脚本语言可以和多种语言混合使用。
但是当我开始写这个小项目的时候。最头疼的问题是css看 不懂。额。。。。。。。
//array()数组
$info = array('id'=>1,'name'=>'Tom');
echo $info['id'];//输出1
echo "<br />";
echo $info['name'];//输出Tom
如果想查看数组的所有元素
可以使用print_r()函数或者 var_dump()这两个函数进行查看
$byc = array('id'=>1,'name'=>'zyz','age'=>22,'num'=>2017024416);
print_r($byc);
echo "<br />";
var_dump($byc);
//分别输出
/*
* Array ( [id] => 1 [name] => zyz [age] => 22 [num] => 2017024416 )
array(4) { ["id"]=> int(1) ["name"]=> string(3) "zyz" ["age"]=> int(22) ["num"]=> int(2017024416) }
*
*/
删除数组
php提供的unset()函数既可以删除数组中的某个元素也可以删除整个数组
<?php
$byc = array('id'=>1,'name'=>'zyz','age'=>22,'num'=>2017024416);
unset($byc['id']);//删除数组中的id
print_r($byc);
unset($byc);//删除整个数组
print_r($byc);
/*
输出
Array ( [name] => zyz [age] => 22 [num] => 2017024416 )
Notice: Undefined variable: byc in E:\WWW\self\self.php on line 8
*/
?>
<?php
//遍历数组
$fruit = array('apple','pear');
foreach($fruit as $key => $value)
{
echo $key.'---'.$value.' ';
//输出
//0---apple 1---pear
}
?>
<?php
//遍历数组
$fruit = array('apple','pear');
foreach($fruit as $key => $value)
{
echo $key.'---'.$value.' ';
//输出
//0---apple 1---pear
}
echo "<br />";
foreach($fruit as $value)
{
echo $value.' ';
//输出apple pear
}
//php内置函数
?>
explode()函数
<?php
//PHP内置函数
//explode用一个字符串分割另一个字符串
var_dump(explode('n','banana'));
echo "<br />";
//array(3) { [0]=> string(2) "ba" [1]=> string(1) "a" [2]=> string(1) "a" }
var_dump(explode('n','banana',2));
echo "<br />";
//array(2) { [0]=> string(2) "ba" [1]=> string(3) "ana" }
var_dump(explode('n','banana',-2));
echo "<br />";
//array(1) { [0]=> string(2) "ba" }
var_dump(explode('n','banana',0));
echo "<br />";
//array(1) { [0]=> string(6) "banana" }
var_dump(explode('p','itcast'));
echo "<br />";
//array(1) { [0]=> string(6) "itcast" }
?>
常用的字符串函数
<?php
$str="123456789789";
$len = strlen($str);//获得字符串的长度
echo $len;
echo "<br />";
$pos = strrpos($str,"789");//获得字符串在目标函数中最后一次出现的位置
echo $pos;
echo "<br />";
$arr[0]=1997;
$arr[1]=11;
$arr[2]=29;
$str_arr = implode('-',$arr);
echo $str_arr;
echo "<br />";
$str1=str_replace($str,"789","abc");
echo $str1;
echo "<br />";
strlen($str);//返回字符串长度 mb_strlen($str) 可以返回中文字符长度;
strtolower($str);//字母转小写
strtoupper($str);//字母转大写
ucwords($str);//每一个单词的首字母转大写
ucfirst($str);//首字母转大写
str_replace('a','b',$str);//b替换$str 中的a 区分大小写 ;
str_ireplace('a','b',$str);//替换 不区分大小写
htmlspecialchars($str,ENT_NOQUOTES);
//字符串转换为html 实体 ENT_COMPT(默认只编译双引号)ENT_QUOTES单引号双引号都编译,ENT_NOQUOTES不编译任何引
trim($str);//删除字符串前后(左右)空格
ltrim($str);//只删除字符串左侧的空格
rtrim($str);//只删除字符串右侧的空格
//trim加第二个参数 就是移除指定的字符集 如ltrim($str,'0..9') 移除左侧数字开头的字符
strpos($str,'a');//字符串a 在$str 第一次出现的位置 索引0开始 没有出现返回false 区分大小写
stripos($str,'a');//同上 但是不区分大小写
strrpos($str,'a');//字符串a 在$str 最后一次出现的位置 索引0开始 没有出现返回false 区分大小写
strripos($str,'a');//同上 但是不区分大小写
substr($str,0,3);//截取字符串 $str 的第一个字符 截取长度3 长度不填默认截取到最后 参数为负数则倒数
strstr($str,'a');//截取字符串 $str 中的第一个字符'a'后的字符串 如 sabc -> abc
strrchr($str,'a');//截取字符串 $str 中最后一一个字符'a'后的字符串
strrev($str);//字符串反转 abcd->dcba
md5($str);//字符串MD5加密
str_shuffle($str);//随机打乱字符串顺序
explode('-',$str);//指定分隔符分割字符串 返回数组 ‘-’ 分割$str
implode('-',$str);//数组拼接字符串 与explode()相反
?>
常用的数组排序函数
- sort() - 以升序对数组排序
- rsort() - 以降序对数组排序
- asort() - 根据值,以升序对关联数组进行排序
- ksort() - 根据键,以升序对关联数组进行排序
- arsort() - 根据值,以降序对关联数组进行排序
- krsort() - 根据键,以降序对关联数组进行排
-
<?php $cars=array("Volvo","BMW","SAAB"); sort($cars); ?> /* BMW SAAB Volvo */
<?php $numbers=array(3,5,1,22,11); sort($numbers); ?> /* 1 3 5 11 22 */
<?php $cars=array("Volvo","BMW","SAAB"); rsort($cars); ?> //降序排序
<?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); asort($age); ?>
<?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); ksort($age); ?>
好了到了这一步一些基础的php也介绍的差不都了
下面开始着手解决这个小项目的源代码问题
下面的代码就是一个学生信息的完整的展示
<?php
//定义变量保存学生资料
$name = '王六'; //保存学生的姓名
$birth = '1996-08-07'; //保存学生的出生日期
$subject = 'PHP'; //保存学生的所属学科
$snum = '0150427001'; //保存学生的学号
//分割字符串,获取学生出生的年、月、日
$temp = explode('-',$birth);
$stu_by = $temp[0];
$stu_bm = $temp[1];
$stu_bd = $temp[2];
//获取当前时间的年份、月份和日期
$cur_y = date('Y'); //4位数字完整表示的年份
$cur_m = date('n'); //数字表示的月份,没有前导零,1~12
$cur_d = date('j'); //月份中的第几天,没有前导零,1~31
//计算学生从出生到当前年的周岁
$age = $cur_y - $stu_by;
//判断学生是否已过生日
if($cur_m < $stu_bm || $cur_m==$stu_bm && $cur_d<$stu_bd){
$age--;
}
//判断学生的日期是否是两位数
if($stu_bd < 10){
$stu_bd = '0'.$stu_bd;
}
$date = "$stu_bm.$stu_bd";
//定义保存星座图片名称的变量
$lev = '';
if($date >=1.21 && $date <= 2.19){
$const = '水瓶座';
$lev = 1;
}elseif($date >=2.20 && $date <= 3.20){
$const = '双鱼座';
$lev = 2;
}elseif($date >=3.21 && $date <= 4.20){
$const = '白羊座';
$lev = 3;
}elseif($date >=4.21 && $date <= 5.21){
$const = '金牛座';
$lev = 4;
}elseif($date >=5.22 && $date <= 6.21){
$const = '双子座';
$lev = 5;
}elseif($date >=6.22 && $date <= 7.22){
$const = '巨蟹座';
$lev = 6;
}elseif($date >=7.23 && $date <= 8.23){
$const = '狮子座';
$lev = 7;
}elseif($date >=8.24 && $date <= 9.23){
$const = '处女座';
$lev = 8;
}elseif($date >=9.24 && $date <= 10.23){
$const = '天秤座';
$lev = 9;
}elseif($date >=10.24 && $date <= 11.22){
$const = '天蝎座';
$lev = 10;
}elseif($date >=11.23 && $date <= 12.21){
$const = '射手座';
$lev = 11;
}else{
$const = '魔羯座';
$lev = 12;
}
//定义学生个性标签
$label = '勇敢,低调,直率,执着,善良,乐活族,手机控,90后';
//分割学生个性标签
$labels = explode(',',$label);
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>判断学生星座</title>
</head>
<style>
.detial{border:2px solid #FCD5B5;background:#FDEADA;float:left;line-height:40px;margin:20px;position:relative;}
.detial table{margin:20px 65px 40px;}
.detial table th{border-bottom:2px dotted #FAC090;padding-bottom:5px;}
.detial table td:nth-child(1){min-width:85px;}
.icon-top{width:40px;height:61px;position:absolute;top:0;margin-top:-15px;margin-left:-10px;background:url('./images/icon_top.png');background-size:100% auto;}
.icon-bottom{width:80px;height:39px;position:absolute;right:0;bottom:0;background:url('./images/icon_bottom.png');background-size:100% auto;}
.const span{line-height:60px;}
.const img{width:50px;height:50px;border-radius:50px;border:1px solid #74A4CD;vertical-align:middle;}
.labels span{padding:3px 5px;margin:0px 10px 10px 0px;font-family:'simsun'; text-align:center; color:#444; font-size:15px;white-space:nowrap;display:inline-block;line-height:20px;}
.labels .blue{background-color:#DEF2FE;border:1px solid #92E2FD; }
.labels .red{background-color:#FFCCBF;border:1px solid #F58A6E;}
.labels .yellow{background-color:#FEF6CE;border:1px solid #EAD483;}
.labels .green{background-color:#E7F2D0;border:1px solid #90D52D;}
</style>
<body>
<div class="detial">
<table>
<tr>
<th colspan="3">学生个性标签</th>
</tr>
<tr>
<td>姓 名:</td>
<td><?php echo $name;?></td>
</tr>
<tr>
<td>出生日期:</td>
<td><?php echo $birth;?></td>
</tr>
<tr>
<td>年 龄:</td>
<td><?php echo $age;?></td>
</tr>
<tr>
<td>学 科:</td>
<td><?php echo $subject;?></td>
</tr>
<tr>
<td>学 号:</td>
<td><?php echo $snum;?></td>
</tr>
<tr>
<td>星 座:</td>
<td class="const">
<span><?php echo $const;?></span>
<img src="./images/<?php echo $lev.'.png';?>">
</td>
</tr>
<tr>
<td>个性标签:</td>
<td class="labels">
<!--遍历学生个性标签并展示-->
<?php
foreach($labels as $v){
//定义数组保存标签块展示颜色
$class_name = array('blue','red','yellow','green');
$index = array_rand($class_name);
echo '<span class="'.$class_name[$index].'">'.$v.'</span>';
}
?>
</td>
</tr>
</table>
<div class="icon-top"></div>
<div class="icon-bottom"></div>
</div>
</body>
</html>
百度网盘源码下载
链接:https://pan.baidu.com/s/1fzSGcRRAYwsjT2PiqffdXA
提取码:gzwi