HTTP服务&AJAX编程

一、服务器

        1. 什么是服务器?

能够提供某种服务的机器(计算机)称为服务器。

2.服务器的分类:

             1.按系统分类:Linux  windows
        2.按应用软件:appache IIS  tomcat
        3.按使用场景:web(http)服务器 数据库服务器 邮件服务器

 

二、网络基础

1.IP地址

 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():输出详细信息,如对象、数组(了解)

 注意:中文汉字出现乱码,为编码的问题  
            //设置编码
            header("Content-Type:text/html;charset-utf-8");

七、运算符

基本与Javascript语法一致

. 号表示字符串拼接符,Javascript中为+号

 

八、 函数

与Javascript基本一致

函数名对大小写不敏感

默认参数(了解即可)

  1. <?php
  2. //php中的函数
  3. // js方法
  4. // function sayHi(){
  5. // console.log("sayHi");
  6. // }
  7. // sayHi();
  8. function sayHi($name='zhangsan'){
  9. echo "Hello ".$name;
  10. }
  11. // sayHi('world!!'); 有参数且传参
  12. // sayHi(); 有参数不传参 解决:定义参数的时候,给参数一个默认值 当不传 默认值 传就是当前传的值
  13. sayHi('lisi');
  14. ?>
 

九、分支、循环语句

与Javascript基本一致

foreach()

  1. <?php
  2. // php中的分支语句
  3. // 判断语句 switch
  4. // js if(条件){}else{}
  5. // js switch(条件){ case 选项: 执行的语句; break; default: 执行的语句;break;}
  6. $married=false;
  7. $name="gaoyuanyaun";
  8. if($married){
  9. echo "那我就重新找其他明星吧";
  10. }else{
  11. echo $name." 嫁给我吧!!";
  12. }
  13. echo "<br>-----------------------<br>";
  14. $today="周二";
  15. switch($today){
  16. case"周二":
  17. echo "周二激情四射";
  18. break;
  19. case"周三":
  20. echo "周三还是激情";
  21. break;
  22. default:
  23. echo "我们来睡个觉吧!!";
  24. break;
  25. }
  26. ?>
 

十、数组、遍历数组

  1. <?php
  2. // js数组 var arr=new Array(); var arr=[1,2,4];
  3. // 定义php数组
  4. $arr=array(1,2,"gaoyuanyuan",3.1415926,true);//索引数组
  5. // 0 => int 1
  6. // 1 => int 2
  7. // 2 => string 'gaoyuanyuan' (length=11)
  8. // 3 => float 3.1415926
  9. // 4 => boolean true
  10. // 打印输出PHP数组
  11. echo $arr;
  12. // 问题:打出索引值 结构 值的类型 长度
  13. var_dump($arr);
  14. // 遍历php数组
  15. // js for
  16. // for(var i=0;i<arr.length;i++){
  17. // arr[i]
  18. // }
  19. // count(数组)方法 返回值是数组的长度
  20. // $leng=$arr.length;
  21. $leng=count($arr);
  22. // echo $leng;
  23. // php数组和js区别:数组没有length属性
  24. // 错误写法
  25. // for($i=0;$i<$arr.length;$i++){
  26. // echo $arr[$i];
  27. // }
  28. // 正确的
  29. for($i=0;$i<$leng;$i++){
  30. echo $arr[$i].',';
  31. }
  32. echo "<br>-------------<br>";
  33. // 在js中有一个数据类型 对象
  34. // var obj={
  35. // name:"zhangsan",
  36. // age:18
  37. // }
  38. $arrguanlian=array('name'=>'zhangsan','age'=>18);//关联数组
  39. // 遍历 foreach既可以遍历索引数组还可以遍历关联数组
  40. // foreach(){}
  41. // foreach(数组名 as $k=>$v){
  42. // }
  43. // 遍历关联数组
  44. foreach($arrguanlian as $k=>$v){
  45. echo $k.'-----'.$v;
  46. echo "<br>-------------<br>";
  47. }
  48. // 遍历索引数组
  49. foreach($arr as $k=>$v){
  50. echo $k.'-----'.$v;
  51. echo "<br>-------------<br>";
  52. }
  53. ?>

十一、系统函数检查数组,常用的函数

       常用系统函数   in_array() 是否在数组中  array_key_exists ()检测数组中是否存在key
         in_array() 是否在数组中
                count() 计算数组长度
                array_key_exists ()检测数组中是否存在key
                file_get_contents读取文件
  1. <?php
  2. $arr=array('name'=>'congcong','age'=>80);
  3. // in_array(判断的值,数组) 是否在数组中 判断一个值是否在数组中 返回值是boolean true 或false
  4. $flag=in_array(80,$arr);
  5. echo $flag;
  6. //array_key_exists()检测数组中是否存在一个键 返回值是boolean true 或false
  7. $flag1=array_key_exists('name',$arr);
  8. echo $flag1;
  9. ?>

十二、表单处理

表单name属性的是用来提供给服务端接收所传递数据而设置的

表单action属性设置接收数据的处理程序

表单method属性设置发送数据的方式

当上传文件是需要设置 enctype="multipart/form-data",且只能post方式

$_GET接收 get 传值

$_POST接收 post 传值

$_FILES接收文件上传

1.get方式

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <!--1.action 代表数据提交到什么地方 服务器php -->
  9. <!--2.用什么样的方式提交 get post-->
  10. <!--用户名密码都应该存在一个变量中
  11. name属性的值是作为一个key来存储用户输入的信息的
  12. -->
  13. <formaction="form.php"method="get">
  14. <inputtype="text"name="username"id="user">
  15. <inputtype="password"name="password"id="pass">
  16. <inputtype="submit"value="提交">
  17. </form>
  18. </body>
  19. </html>
  20. <!--get提交数据的特点:1.数据的格式 key=value&key1=value1&key2=value2....
  21. 2.数据内容会显示在地址栏中
  22. 3.地址栏中的数据是长度有限的 ie浏览器规定不超过1024
  23. 4.get是默认的方式
  24. 5.get提交方式不太安全
  25. -->
  26. <!--注意:用什么样的方式提交,就要用什么样的方式接受-->
  1. <?php
  2. //后台程序如何得到前端提交的数据
  3. // $_GET用来接收前端提交过来的数据
  4. var_dump($_GET);
  5. ?>

2.post方式

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <!--
  9. 1.在html里 定义数据提交给哪个应用程序
  10. 2.在html里 设置数据提交的方式
  11. 3.在html里 设置input的name属性
  12. -->
  13. <formaction="form-post.php"method="post">
  14. <inputtype="text"name="username"id="user">
  15. <inputtype="password"name="password"id="pass">
  16. <inputtype="submit"value="提交">
  17. </form>
  18. </body>
  19. </html>
  20. <!--post方式的特点
  21. 1.提交数据不会显示到地址栏
  22. 2.数据提交格式是key=value&key1=value1&key2=value2....
  23. 3.数据可以无限大(理论上)
  24. 4.post提交方式相对安全
  25. -->
  1. <?php
  2. // 1.接受前端传过来的数据
  3. // 2.返回结果
  4. var_dump($_POST);
  5. ?>
 

十三、HTML和PHP的混写方式

  1. <?php
  2. // html和php混合写
  3. // index.html ->index.php
  4. //注意 1.php嵌入html 需要写成php格式的文件
  5. //2.php代码要写在<?php代码?>
  6. //不必把所有的逻辑和数据写在同一标签中
  7. $arr=array('www.baidu.com','www.jd.com','www.taobao.com')
  8. ?>
  9. <!DOCTYPE html>
  10. <htmllang="en">
  11. <head>
  12. <metacharset="UTF-8">
  13. <title>Document</title>
  14. </head>
  15. <body>
  16. <h1>hello</h1>
  17. <?php
  18. for($i=0;$i<count($arr);$i++){
  19. // 把网址通过php代码输出成a链接
  20. echo '<a href="'.$arr[$i].'">链接</a><br>';
  21. }
  22. ?>
  23. </body>
  24. </html>
 

最新文章

  1. spring-初始化完成后运行指定内容
  2. day 2
  3. Codeforces Round #349 (Div. 1) A. Reberland Linguistics dp
  4. Poj OpenJudge 百练 2389 Bull Math
  5. PHP中foreach循环详解
  6. poj 3692 Kindergarten (最大独立集之逆匹配)
  7. MFC软件工程架构模型-模式窗口-非模式窗口
  8. Source Insight 3.X 插件支持utf8,完美解决中国乱码,连接到美丽的轮廓
  9. oracle 存储过程(1)
  10. 查漏补缺系列之dapper初体验
  11. Servlet init()
  12. Dalvik 虚拟机操作码
  13. 产品研发团队如何融合OKR与Scrum敏捷开发?
  14. 用phantomjs进行web界面自动化测试的几个注意点
  15. Hdoj 2191.悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 题解
  16. MongoDB的基本查询
  17. spring boot使用TestRestTemplate集成测试 RESTful 接口
  18. 涂抹mysql笔记-数据备份和恢复
  19. 在Linux服务器上配置Transmission来离线下载BT种子
  20. D. Vasya and Triangle

热门文章

  1. Spring中javaMail通过SMTP发送邮件
  2. Rails :.nil? , .empty?, .blank? .present? 的区别
  3. JSP中动态include和静态include的区别(简版)
  4. DDGSpring2016 Demos
  5. My Construct
  6. [HTML5]HTML结构性元素(Structure)
  7. Git使用培训
  8. php中序列化与反序列化
  9. Java 多张图片合成一张 drawImage
  10. 模拟下载的进度条ProgressBar