01-PHP

<?php
表示里面的代码是php代码
所有的php文件都必须运行在服务器环境(Apache)
php是一个弱类型的脚本语言 用于web的 后端开发
它有着和JavaScript相似的语法 语法上会更严谨
在定义变量时 不会数据类型进行约束 (弱类型语言的特点)
语法规范:
所有的语句必须以分号结束(没有分号会直接出错)
设置响应头(让浏览器按照一定的规则对内容进行处理解析和排版)
告诉浏览器 以html的标准来解析文档 字符集设置为 utf-8
header(‘content-type:text/html;charset=utf-8’);
输出语句 用于输出字符串
echo’

你好世界

‘;
echo’你好’;
echo’
‘;
echo’世界’;
?>

php 是一个弱类型语言
在声明变量时 不需要对变量指定数据类型
变量可以存储任意类型的数据
变量的命名采用小驼峰命名法
JavaScript创建变量使用关键字 var let const
php创建变量 没有关键字
但是php的中的所有变量 必须以 $ 开头
$userName = ‘小明’;
echo $userName;
echo ‘
‘;
在php语言中 . 是字符连接符
echo ‘你好’.$userName;
echo ‘
‘;
在php语言中 字符串 单引号和双引号是有区别的
在双引号中 可以直接使用变量 这使得这种字符串语法类似于 JS中的 模板字符串
echo “你好,我是$userName”;
$user;
$age = 15;
$sex=”nan”;
$n = null;
$bool = true;
$PI = 3.14;
函数 var_dump() 输出并查看数据类型
var_dump($user);
var_dump($age);
var_dump($sex);
var_dump($n);
var_dump($bool);
var_dump($PI);
———————————————————-
$arr = [2,3,5];
输出数组的方法 var_dump() 或 print_r()
var_dump($arr);
print_r($arr);

02-php分支结构和循环结构

分支结构(和JS完全相同)
if-else
switch-case
$age = 13;
if($age>=18){
echo ‘成年人’;
}else{
echo ‘未成年人’;
}
$num = 1;
switch($num){
case 0:
echo 0;
break;
case 1:
echo 1;
break;
case 2:
echo 2;
break;
default:
echo ‘def’;
}
——————————————————————
循环结构(语法和JS完全相同)
while
do-while
for
$i = 3;
while($i<10){
echo $i++;
}
do{
echo ‘hahah’;
}while(false);
for($i = 0;$i < 5;$i++){
echo$i;
}

03-php函数及数组

<?php
变量名使用$开头 函数名不使用$开头
php中的函数和JavaScript 完全相同
functionmyFn($num){
for($i = 2;$i<$num;$i++){
if($num % $i == 0){
returnfalse;
}
}
returntrue;
}
if(myFn(17)){
echo’是质数’;
}else{
echo’不是质数’;
}
?>

php中数组有两种使用方式
索引数组
二维数组
外层数组是索引数组
内层数组是关联数组
如果是JS
这种数据结构如何表达
[{},{},{}]
关联数组
关联数组是一种无序数组(准确的来说 它是一种hash结构)
hash结构指的是使用 键值对的形式存储数据
数组中可以存放任意类型的数据
数组中成员排列是有序的(索引数组)
每一个数组的成员都会对应一个索引值(index) 索引从0开始计算
最大索引是数组元素成员数量-1
不同于JS的是 PHP的数组没有length属性
使用函数 count() 查看数组成员个数
$arr = [1,3,2,5,2,2,3];
print_r($arr);
echo count($arr);
for($i = 0; $i < count($arr) ;$i++){
echo $arr[$i];
}
foreach 不是JS中传统的foreach 它类似于 JS中的 for-of 语法
foreach($arr as $value){
echo $value;
}
————————————————————————-
https:www.php.net/manual/zh/book.array.php

04-php数组API

$result = array_push($arr,31);
echo $result;
rsort($arr);
print_r($arr);
$result = array_filter($arr,function($elm){
return $elm%2;
});
print_r($result);
$res = array_slice($arr,2,5);
print_r($res);

$arr = array(
‘username’=>’小花’,
‘age’=>20,
‘sex’=>’女’
);
$phone = array(
‘phoneNumber’=>13677889999
);
$result = array_merge($arr,$phone); 合并(关联)数组
print_r($result);
json_encode() 将php中的关联数组和对象 转换成 json
$json = json_encode($result);
echo$json;

在php中 $arr = array(‘username’=>’小花’,)
=>相当于 :usename:小花
->相当于 . $arr.username

05-渲染

网站渲染
1. 后端渲染
动态网站(页面) 指的是 由 HTML+CSS+JS+后端语言(php,java,python,c#,go,javascript…) 组成的页面
当用户在访问网页时 其实访问的是网站的web服务器(软件 apache tomcat iis …)
web服务器会帮助用户找到响应的文件 和 对应语言的编译器(php java虚拟机 .net)
编译器会将对应的文件 编译成 html 代码 然后响应给用户
用户收到的是html代码 由浏览器负责渲染页面
后端渲染指的是 后端向前端响应的内容 是 HTML
浏览器 不认识 php 等后端语言 所以需要一个 翻译 翻译成浏览器认识的语言(HTML)
$message = ‘你好世界!!!!’;
$color = ‘red’;
2. 前端渲染
前端渲染 指的是 后端提供数据(JSON) 前端通过异步请求获得数据(JSON) 通过对数据的解析 将数据加载到页面(DOM操作)
?>
"><?phpecho$message; ?>

06-服务器及http协议

phpstudy_pro
集成服务环境 包含了一些web开发需要的软件服务
### 开发测试环境
WAMP Windows Apache Mysql PHP
WNMP Windows Nginx Mysql PHP
### 项目部署环境
LNMP Linux Nginx Mysql PHP
集成服务环境 开快捷高效的帮开发人员进行软件的测试和部署
能够用于web后端开发的语言非常多
Java JSP
C# ASP.NET
PHP PHP
Python
JavaScript
….
不同的编程语言配合的环境和web服务器也不相同
常见的web服务器
Tomcat (Windows Linux Unix OSX)
IIS (Windows)
Apache (Windows Linux Unix OSX)
Nginx (Windows Linux Unix OSX)
Web服务器的配置工作 一般不由开发人员完成 一般由运维工程师完成
Web服务器的作用是为网站页面也网站应用 提供 数据和路由的支持
路由的本质 就是 分支
### 网络传输协议
TCP/IP
http: 超文本传输协议 默认端口号 80
https: SSL加密后的超文本传输协议 默认端口号 443
ftp: 文件上传下载协议 默认端口 21
IP 地址 它是互联网上唯一的身份标识
每一台需要联网的设备 都会配一个IP地址作为身份标识
目前采用的主流 TCP/IPv4 它使用4组2位十六进制数标识
0.0.0.0 - 255.255.255.255 (理论值)
实际上地址池的范围
A类地址 1.0.0.0 - 126.255.255.255 全球90%的A类地址 在美国
B类地址 128.0.0.0 - 191.255.255.255
C类地址 192.0.0.0 - 223.255.255.255
### 域名
域名 是一种便于记忆的 地址
域名可以从任意的域名服务商 购买
国内的域名服务商(万网 新网)
购买域名后 需要进行公安和工信部备案 才可以使用
域名在备案结束后 需要在服务商进行域名解析
域名解析指的是 将一个备案后的域名 和一个 IP地址 进行 一一对应的映射关系处理(10分钟左右同步到全网)
用户上网第一个收到请求的 是网络服务商(中国电信 中国移动 中国联通)
在网络服务商配备了一些 服务器 用于域名的解析 域名解析服务器(DNS)
域名表
域名 ip
www.rootbk.cn 140.143.243.131
www.baidu.com 180.101.49.12
本机地址
localhost 127.0.0.1