浏览器内核两个阵容**:W3C和非W3C**;(IE9以上的都一样)
能用浏览器打开的,就是web,如百度,小程序不是web。
HTTP服务器(Web服务器):网站服务器
Apache:只要电脑装了Apache,就是一个服务器,web服务器
客户端:通过安装客户端软件,索取服务的计算机
服务器(端):通过安装服务器软件,提供服务的计算机
软件架构:B/S,C/S
C/S:需要安装才能使用;性能高效,使用更加稳定和流畅
B/S:不需要安装,只需要浏览器即可;相比CS架构,性能相对较差,没有那么流畅和稳定
通过浏览器请求的就是B/S;其他的,比如通过安装的都是C/S架构
动态网站和静态网站
网站:由多个页面构成的(一个页面也可以构成一个网站)
静态网站:使用浏览器语言进行编程,由HTML,CSS,JS组成
动态网站:网页通过服务器的程序(php,java)动态生成的,用户可以和服务器进行交互(可以根据用户输入的不同信息,返回不同的运行结果 )(网站页面元素不改变,只有数据在改变,动指的是数据在动)
网络基础
ip地址:就是给每个连接在互联网上的主机分配的一个32位的地址(都是唯一);通过ip就可以找到具体的某一台计算器{(255.255.255.255):0-255}没有规律,不方便记忆和推广
查询本机ip地址:ipconfig
查询域名对应的ip地址:ping
本地服务器ip地址:localhost===127.0.0.1
192.168开头的为局域网的地址
一台电脑有多个根目录,一个盘就有一个根目录
域名是一个ip地址的“好记的名字”
一个域名对应一个ip地址(相互对接)
DNS服务器:因特网上作为域名和ip地址相互映射(对接)的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的ip数串(简单来说DNS是用来记录ip地址和域名之间的对应关系)
端口
端口号是计算机与外界通讯交流的出入口,每个端口对应不同的服务;
Apache:80
MYSQL:3306
计算机是一个房子,软件(如Apache)就是每个房间,每个房间用端口号(如80)来标识;端口被占用,就是相当于地盘被占用
默认端口:就是一开始配的,可以改变,默认是80(localhost后面可以不加80),可以省略不写(端口范围在0到55000左右)
查询端口被占用情况:netstat -an
PHP
index.html/index.php是默认打开,其他页面是要自己填写
php格式:
<?php
//代码
?>
输出:echo 输出内容
使用echo输出中文内容会出现乱码,解决:
header(“content‐Type:text/html;charset=utf‐8”);
php格式
- php 中的注释和 js 中的一样
- 所有的 php 代码都要用 php 标签包裹、
- 必须要通过 服务器的方式, 访问 php 文件, php 代码才会进行解析
- 服务器会对 php 代码进行解析执行, 并将结果输出给浏览器
- php 中必须以分号结尾, 最后一个语句, 可以省
变量规则
- 不需要关键字进行声明,变量在第一次赋值的时候被创建
- 必须以$符号开始
- $后面的命名规则与js的变量命名规则一致
变量一开始声明时没有赋值,直接使用就会报错
删除变量
unset($变量名)
判断变量是否设置值
isset($变量名)
判断变量是否为空
empty():null返回true,非空为false
var_dump() //输出变量的类型
var_dump(isset($变量名))——>bool (true/false)
拼接:
1.php中不是用**+来进行拼接,而是用.**来进行拼接
echo "hi".$uname;
2.也可以直接放变量
echo "hi$uname"; //但是变量后面不可再接东西
3.也可以用使用**{}**将变量括起来
echo "hi{$uname},你好吗";
php中,字符串可以用单引号和双引号来表示,但是单引号不能解析变量;在没有变量的情况下,单引号的性能比较高,因为双引号还要检查有没有变量,因此性能差些
数组
索引数组:
数组声明:
$arr = array(2,6,7,9,3);
获取下标内容
echo $arr[2];
管联数组
$arr3 = ["uname"=>"张三","uage"=>20];
echo $arr3["uname"];
echo $arr3["uage"];
//php的关联数组就是js的对象
php的数组长度用count()函数
echo count($arr3);
输出语句:
- echo 输出简单数据类型
echo count($arr3);
-
print_r() 输出数据结构,一般用于输出复杂类型。
-
var_dump() 输出完整的数据结构,包括类型,一般用于精准调试
二维数组
$arr4=[
[1,2,3],
[4,5,6],
[7,8,9]
];
echo $arr4[0][2]; //3
echo $arr4[2][2]; //8
多维数组
$a = [[[5,6,7]]];
echo $a[0][0][1] //6
标签:
//保留一个空格
echo "<h1>我是h 1标题</h1>";
//<pre>:输入什么就是什么,保留回车
echo "<pre><h1>我是h1
标题</h1></pre>";
echo "<pre>";
var_dump($arr);
echo "</pre>";
print_r($arr);
for循环输出索引数组
$arr = ["张三","李四","王五","周六","田七"];
for ($i=0;$i<count($arr);$i++) {
echo $arr[$i];
echo "<br>";
}
foreach输出关联数组
$info =[
"name"=>"张三",
"age"=>20,
"sex"=>"男",
"desc"=>"你好"
];
//$k=键;$v=值
foreach ($info as $k => $v) {
echo $k."-----".$v;
echo "<br>";
}
对象
class Person {
public $uname = "小明";
public $uage = 20;
private $usex = "男"; //私有属性,不能访问,无法获取
}
$user = new Person();
echo $user->uname;
echo $user->uage;
echo $user->usex; //报错
对象中取值用**->**
页面动态渲染
html和php混编后缀名一定要是.php
快捷键:
html:xt+tab键快速生成html页面
html:5+tab(!+tab) html5
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$arr =["uname"=>"嚣张","age"=>12];
foreach ($arr as $k=>$v) {
echo $k."-----".$v;
echo "<br>";
}
?>
</body>
</html>
表单提交
index.php
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<!--需要保密的数据用post,如登录注册-->
<!--其他时候用get也可以-->
<!--input要提交到后台,必须要设置name属性
想要提交表单,要设置inputd的type为submit
-->
<form method="post" action="./getData.php">
姓名:<input type="text" id="uname" name="userName"><br>
密码:<input type="password" id="uage" name="userAge"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
getData.php
<?php
//get
//echo $_GET["userName"];
//echo $_GET["userAge"];
//post
echo $_POST["userName"];
echo $_POST["userAge"];
?>