文章目录
这一节以windows系统的wamp为服务器,来执行例子,必须具备配置和安装wamp的相关知识。
1.网站分类
网站分为静态网站和动态网站,分别对应sweb和dweb。
静态网站指的是全部由HTML代码格式页面组成的网站,没有数据库的支持,在网站制作和维护方面工作量大。
动态网站并不是指有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站。一般情况有数据库的支撑。一般的动态网页以asp,jsp,php,aspx等结尾。
2.php的基本语法
1.echo方法
作用就是向浏览器输出内容。echo不是函数,而是php的语言结构。
例如:
<?php
echo "<h1>HelloWorld PHP!</h1>";
?>
所有的php代码都要写在"<?php ?>"里面。
php文件必须在服务器上执行。
php代码可以和html互相结合使用。
2.php变量和字符串拼接
声明变量使用的是" $ "符号。
在php中使用’’ + “,适合作数值运算,不适合字符串拼接。如果使用” + "号来拼接字符串,会输出 0 。
php拼接字符串使用的是" . "符号。
3.php的执行原理
浏览器是不识别PHP代码!!!!
PHP代码必须在服务器中执行,双击打开php,或者在文档中打开php是达不到效果的!!!
php执行的效果,归功于apache模块和php模块,apache来提供网页服务,php来翻译解析。 在window系统中,一般使用wamp;在linux系统中,一般使用lamp来作为服务器,从而达到执行php代码的效果 。如图下:
就像上图一样,如果php和html代码一起执行,他会在后台先解析好php,然后在发给浏览器。如图下:
4.语法错误显示
如果出现了下面的样式,说明php的语法出现了错误。
3.php数组
1.一维数组
在php中数组是用array来定义的。
在php中还可以定义下标索引。
下面王五的索引值,就是index1,而张三的索引值则默认为 0,李六的索引值是 1。注意:这里李六的索引值不是2,而是1。
var_dump函数用来输出变量或表达式的相关信息和结构信息。
例如:
<?php
$str1 = array("张三","index1"=>"王五","李六");
var_dump($str1);
echo "<br>";
echo $str1[index1];
?>
2.二维数组
二维数组,就是在一维数组的前提下,再次进行赋值一个数组。
查看二维数组有两种方法:
第一种:var_dump()函数来查看。
例如:
<?php
//现在,str1还是一维数组
$str1 = array("张三","index1"=>"王五","李六");
//完成下面,str1就变成了二维数组,并且赋值。
$str1 = array();
$str1["张三"] = array("age"=>19,"sex"=>"female","height"=>180);
$str1["王五"] = array("age"=>19,"sex"=>"male","height"=>186);
$str1["李六"] = array("age"=>19,"sex"=>"female","height"=>150);
//使用var_dump()可以输出一维数组也可以输出二维数组。
var_dump($str1)
?>
第二种,使用json_encode()函数方法转换为json格式,这里的json格式和字符串格式差不多。
例如:
<?php
//现在,str1还是一维数组
$str1 = array("index0"=>张三","index1"=>"王五","index2"=>李六");
//完成下面,str1就变成了二维数组
$str1 = array();
$str1["张三"] = array("age"=>19,"sex"=>"female","height"=>180);
$str1["王五"] = array("age"=>19,"sex"=>"male","height"=>186);
$str1["李六"] = array("age"=>19,"sex"=>"female","height"=>150);
//使用json_encode()方法。
$result = json_encode($str1);
echo $result;
?>
4.php数组遍历
有两种方法:
第一种方法:
使用for循环和count()方法来,遍历数组
例如:
<?php
$str1 = array("张三","王五","李六");
//这里获得数组长度与JS不一样,这里使用的是count来获得数组长度。
for($i=0;$i<count($str1);$i++){
$temp = $str1[$i];
echo $temp . "<br>";
}
?>
上面的方法,只适合没有定义下标索引值的数组,而定义了下标索引值的数组,可以使用第二种方法来遍历。
第二种方法:
使用foreach()方法来遍历数组。推荐使用第二种方法来遍历数组。
例如:
<?php
$str1 = array("index1"=>"张三","index2"=>"王五","index3"=>"李六");
//foreach来遍历。
foreach ($str1 as $key => $value) {
echo $key . ">>>" . $value . "<br>";
}
?>
5.php的函数
这里记录几个比较常见的函数。
1. print()只能打印出简单类型变量的值(如int,string)
2. print_r() 可以打印出复杂类型变量的值(如数组,对象)
3. var_dump()函数方法
4. json_encode()函数方法
5. count()函数方法
自定义函数:
和JS一样,使用function来声明:
function name(参数1,参数2 … ){
code;
}
6.php预定义变量:GET和Post请求
1.GET请求
下面直接做一个简简单单的登录系统和检验。
例如:
创建一个login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>登录界面</title>
</head>
<body>
<h1>登录界面</h1>
//定义好属性active和method(get方法)
<form action="chick.php" method="get">
用户名:<input type="text" name="username"><hr>
密码:<input type="password" name="password"><hr>
<input type="submit" name="提交">
</form>
</body>
</html>
对应上面的active方法,创建一个chick.php
$_GET[name]的使用是对应get最重要的方法.
<?php
$username = $_GET["username"];
$password = $_GET["password"];
if ($username == "admin" && $password == "123") {
echo "Login Success!!!";
}else{
echo "Login falied!!!";
}
?>
注意:
Get请求,所传递的参数在网址的url后面,多个参数用&进行连接,如图下:
2.Post请求
同GET,做一个简单的登录小程序.
例如:
创建一个login.html,这里使用post方法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>登录界面</title>
</head>
<body>
<h1>登录界面</h1>
<form action="chick.php" method="post">
用户名:<input type="text" name="username"><hr>
密码:<input type="password" name="password"><hr>
<input type="submit" name="提交">
</form>
</body>
</html>
同上,创建一个chick.php
$_POST[name]的使用是对应get最重要的方法.
<?php
$username = $_POST["username"];
$password = $_POST["password"];
if ($username == "admin" && $password == "123") {
echo "Login Success!!!";
}else{
echo "Login falied!!!";
}
?>
Post请求和GET请求不一样,Post请求的参数信息放在请求头里面,看下图的From Data里面.
7.创建一个前端基本的学生查询成绩的程序
首先创建一个getScore.html文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>查询学生成绩</title>
</head>
<body>
<h1>请在下列输入框中输入学生的考号进行查询:</h1>
<form action="result.php" method="get">
输入考号:<input type="text" name="code">
<input type="submit" name="查询">
</form>
</body>
</html>
再创建一个result.php文件,做为一个处理文件,来返回结果.
<!-- 根据学生的考号查询数据库,得到数据之后进行返回 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>学生成绩结果</title>
<style type="text/css">
ul{
list-style: none;
color: red;
}
.title{
font-size: 20px;
}
</style>
</head>
<body>
<?php
//这里直接写一个二维的模拟的数据库,正常情况数据应该在数据库中获取,对应!!!
$date = array();
$date["123"] = array("name"=>"张三","语文"=>"111","英语"=>"150","数学"=>"150");
$date["456"] = array("name"=>"张三","语文"=>"121","英语"=>"141","数学"=>"149");
$date["789"] = array("name"=>"张三","语文"=>"131","英语"=>"140","数学"=>"149");
$code = $_GET["code"];
//查询数据库,这里查询上面的二维数组
?>
<!-- 这里很有意思,array_key_exists判断是否存在!-->
<!--php和html元素混合使用的判断形式要记住!!! -->
<?php
if (array_key_exists($code, $date)) {
$result = $date[$code];
?>
<div>
<div class="title"><?php echo $result["name"]; ?>成绩如下</div>
<ul>
<li>语文:<?php echo $result["语文"]; ?></li>
<li>数学:<?php echo $result["数学"]; ?></li>
<li>英语:<?php echo $result["英语"]; ?></li>
</ul>
</div>
<?php
} else{
?>
<div>该学生考号不存在!</div>
<?php } ?>
</body>
</html>
这里用的get方法,用post也是一样的,就是换相应的post方法和$_POST[name]的预定义变量,就行,一定要多读读,注释!!从而理解代码.