HTTP服务&AJAX编程
一、服务器
1. 什么是服务器?
能够提供某种服务的机器(计算机)称为服务器。
2.服务器的分类:
2.按应用软件:appache IIS tomcat
3.按使用场景:web(http)服务器 数据库服务器 邮件服务器
二、网络基础
1.IP地址
查看本机IP地址 ping、ipconfig、ifconfig
2.域名
域名:IP的面具,为了让用户更容易找到网站
查看域名对应的IP地址 ping
3.DNS服务
DNS服务器:将域名返回给浏览器(其中存储域名-IP信息)
查找优先级 本机hosts文件、DNS服务器
ipconfig /flushdns
4.端口
查看端口占用情况 netstat -an
常见端口号 80、8080、3306、21、22
三、C/S和B/S
1.CS:client(客户端)/server(服务器)
缺点:使用对应的功能,必须下载对应的客户端
如果服务更新了,客户端一般也需要更新
2.BS:B(browser)/server(服务器)
缺点:性能不太好,运算性能不好
效果不够酷炫
四、搭建HTTP服务
Windows + Apache + Mysql + PHP,首字母组合。
1. 安装WampServer
安装wampserver,和普通软件安装无差别,除指定安装路径外,其它默认安装。
2.管理HTTP服务
任务图标绿色为正常启动状态
注意事项:
1、检查网络是不是通的 ping 对方IP
2、检查防火墙是否开启,如果开启将不能正常被访问
3、检查访问权限 Allow from all
4、理解默认索引
5、确保端口没有被其它程序占用
6、“#”表示注释
7、修改配置要格外小心,禁止无意修改其它内容
PHP基础
写法:文件以.php后缀结尾,所有程序包含在<?php /** 这里是代码 **/ ?>
避免使用中文目录和中文文件名
五、 变量
1、变量以$开头 字母/数字/下划线 不能以数字开头
2、大小写敏感(区分大小写)
六、数据类型
字符型、整型、浮点型、布尔型、数组、对象、NULL
单引号&双引号区别
索引数组、关联数组(了解即可)
echo只能打印出来简单类型的值,null和布尔值false都会做隐式转换。
1. 内容输出
echo:输出简单数据类型,如字符串、数值
print_r():输出复杂数据类型,如数组
var_dump():输出详细信息,如对象、数组(了解)
七、运算符
基本与Javascript语法一致
. 号表示字符串拼接符,Javascript中为+号
八、 函数
与Javascript基本一致
函数名对大小写不敏感
默认参数(了解即可)
<?php
//php中的函数
// js方法
// function sayHi(){
// console.log("sayHi");
// }
// sayHi();
function sayHi($name='zhangsan'){
echo "Hello ".$name;
}
// sayHi('world!!'); 有参数且传参
// sayHi(); 有参数不传参 解决:定义参数的时候,给参数一个默认值 当不传 默认值 传就是当前传的值
sayHi('lisi');
?>
九、分支、循环语句
与Javascript基本一致
foreach()
<?php
// php中的分支语句
// 判断语句 switch
// js if(条件){}else{}
// js switch(条件){ case 选项: 执行的语句; break; default: 执行的语句;break;}
$married=false;
$name="gaoyuanyaun";
if($married){
echo "那我就重新找其他明星吧";
}else{
echo $name." 嫁给我吧!!";
}
echo "<br>-----------------------<br>";
$today="周二";
switch($today){
case"周二":
echo "周二激情四射";
break;
case"周三":
echo "周三还是激情";
break;
default:
echo "我们来睡个觉吧!!";
break;
}
?>
十、数组、遍历数组
<?php
// js数组 var arr=new Array(); var arr=[1,2,4];
// 定义php数组
$arr=array(1,2,"gaoyuanyuan",3.1415926,true);//索引数组
// 0 => int 1
// 1 => int 2
// 2 => string 'gaoyuanyuan' (length=11)
// 3 => float 3.1415926
// 4 => boolean true
// 打印输出PHP数组
echo $arr;
// 问题:打出索引值 结构 值的类型 长度
var_dump($arr);
// 遍历php数组
// js for
// for(var i=0;i<arr.length;i++){
// arr[i]
// }
// count(数组)方法 返回值是数组的长度
// $leng=$arr.length;
$leng=count($arr);
// echo $leng;
// php数组和js区别:数组没有length属性
// 错误写法
// for($i=0;$i<$arr.length;$i++){
// echo $arr[$i];
// }
// 正确的
for($i=0;$i<$leng;$i++){
echo $arr[$i].',';
}
echo "<br>-------------<br>";
// 在js中有一个数据类型 对象
// var obj={
// name:"zhangsan",
// age:18
// }
$arrguanlian=array('name'=>'zhangsan','age'=>18);//关联数组
// 遍历 foreach既可以遍历索引数组还可以遍历关联数组
// foreach(){}
// foreach(数组名 as $k=>$v){
// }
// 遍历关联数组
foreach($arrguanlian as $k=>$v){
echo $k.'-----'.$v;
echo "<br>-------------<br>";
}
// 遍历索引数组
foreach($arr as $k=>$v){
echo $k.'-----'.$v;
echo "<br>-------------<br>";
}
?>
十一、系统函数检查数组,常用的函数
count() 计算数组长度
array_key_exists ()检测数组中是否存在key
file_get_contents读取文件
<?php
$arr=array('name'=>'congcong','age'=>80);
// in_array(判断的值,数组) 是否在数组中 判断一个值是否在数组中 返回值是boolean true 或false
$flag=in_array(80,$arr);
echo $flag;
//array_key_exists()检测数组中是否存在一个键 返回值是boolean true 或false
$flag1=array_key_exists('name',$arr);
echo $flag1;
?>
十二、表单处理
表单name属性的是用来提供给服务端接收所传递数据而设置的
表单action属性设置接收数据的处理程序
表单method属性设置发送数据的方式
当上传文件是需要设置 enctype="multipart/form-data",且只能post方式
$_GET接收 get 传值
$_POST接收 post 传值
$_FILES接收文件上传
1.get方式
<!DOCTYPE html>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>Document</title>
</head>
<body>
<!--1.action 代表数据提交到什么地方 服务器php -->
<!--2.用什么样的方式提交 get post-->
<!--用户名密码都应该存在一个变量中
name属性的值是作为一个key来存储用户输入的信息的
-->
<formaction="form.php"method="get">
<inputtype="text"name="username"id="user">
<inputtype="password"name="password"id="pass">
<inputtype="submit"value="提交">
</form>
</body>
</html>
<!--get提交数据的特点:1.数据的格式 key=value&key1=value1&key2=value2....
2.数据内容会显示在地址栏中
3.地址栏中的数据是长度有限的 ie浏览器规定不超过1024
4.get是默认的方式
5.get提交方式不太安全
-->
<!--注意:用什么样的方式提交,就要用什么样的方式接受-->
<?php
//后台程序如何得到前端提交的数据
// $_GET用来接收前端提交过来的数据
var_dump($_GET);
?>
2.post方式
<!DOCTYPE html>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>Document</title>
</head>
<body>
<!--
1.在html里 定义数据提交给哪个应用程序
2.在html里 设置数据提交的方式
3.在html里 设置input的name属性
-->
<formaction="form-post.php"method="post">
<inputtype="text"name="username"id="user">
<inputtype="password"name="password"id="pass">
<inputtype="submit"value="提交">
</form>
</body>
</html>
<!--post方式的特点
1.提交数据不会显示到地址栏
2.数据提交格式是key=value&key1=value1&key2=value2....
3.数据可以无限大(理论上)
4.post提交方式相对安全
-->
<?php
// 1.接受前端传过来的数据
// 2.返回结果
var_dump($_POST);
?>
十三、HTML和PHP的混写方式
<?php
// html和php混合写
// index.html ->index.php
//注意 1.php嵌入html 需要写成php格式的文件
//2.php代码要写在<?php代码?>
//不必把所有的逻辑和数据写在同一标签中
$arr=array('www.baidu.com','www.jd.com','www.taobao.com')
?>
<!DOCTYPE html>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>hello</h1>
<?php
for($i=0;$i<count($arr);$i++){
// 把网址通过php代码输出成a链接
echo '<a href="'.$arr[$i].'">链接</a><br>';
}
?>
</body>
</html>