目录
  1. 1. 了解PHP
    1. 1.1. echo输出内容
    2. 1.2. if
    3. 1.3. for
    4. 1.4. switch
    5. 1.5. while
    6. 1.6. do while
    7. 1.7. 数组
    8. 1.8. 索引数组 关系型数组
    9. 1.9. 二维数组
    10. 1.10. 生成页面步骤(解析数据)
    11. 1.11. form表单发送数据()
    12. 1.12. 查询LOL英雄案例
    13. 1.13. 循环输出HTML
    14. 1.14. get方式提交数据
    15. 1.15. post提交数据
    16. 1.16. 爱旅行案例步骤
    17. 1.17. 上传文件(必须用post方式)
php基础了解黑箱解密

为了更好的了解Ajax技术,有必要对服务器端的编程,操作逻辑有些了解,既然都说PHP是“最好的语言”,那就从PHP开始把。

了解PHP

1
<?php   写入这里的都属于PHP
2
>
echo输出内容
1
<?php
2
  // 这是单行注释
3
  /*
4
     这是多行注释
5
  */
6
7
  // 设置页面编码格式 使用php的函数
8
  // php是最好的语言  基本上我们能够想到的功能 都有函数 4000多个
9
  header('content-type:text/html;charset=utf-8');
10
11
  // 输出内容 关键字 
12
  echo 'hello world';
13
14
  // 中文
15
  echo '你好 世界';
16
17
?>

一些基本逻辑结构示例:比如while for循环、条件选择等

if
for
switch
while
do while
1
<?php
2
  // 设置编码格式
3
  header('content-type:text/html;charset=utf-8');
4
5
  // 定义变量 var name = 'jack';
6
  // 字符串
7
  $name = '吴京';
8
9
  echo $name;
10
11
  // 输出换行
12
  echo '<br>';
13
  
14
  // 数组
15
  $num = 123;
16
  echo $num;
17
18
    // 输出换行
19
  echo '<br>';
20
21
  // 小数
22
  $pi = 3.141592653;
23
  echo $pi;
24
25
  // 输出换行
26
  echo '<br>';
27
  // bool
28
  $male = false;
29
30
  // 逻辑语句
31
  if($male == false){
32
    echo '萌妹子';
33
  }else{
34
    echo '糙汉子';
35
  }
36
?>
1
<?php
2
  // 设置中文编码
3
  header('content-type:text/html;charset=utf-8');
4
5
  // 选择语句
6
  $day = '礼拜八';
7
8
  // 选择语句
9
  switch($day){
10
    case '礼拜一':
11
    case '礼拜二':
12
    case '礼拜三':
13
    case '礼拜四':
14
    case '礼拜五':
15
    echo '上班';
16
    break;
17
    case '礼拜六':
18
    echo '加班';
19
    break;
20
    case '礼拜天':
21
    echo '继续加班';
22
    break;
23
    default:
24
    echo '终于可以休息了';
25
    break;
26
  }
27
28
  // 循环语句
29
  // for
30
  // for(var i =0;i<10;i++){}
31
32
  for($i=0;$i<10;$i++){
33
    echo '<br>';
34
    // php中拼接字符串 用 .
35
    echo '感觉自己萌萌哒'.$i;
36
  }
37
38
  // while
39
  $num = 0;
40
  while($num<=998){
41
    echo '哈哈哈哈哈'.$num;
42
    echo '<br>';
43
    $num++;
44
  }
45
  // 如果为false 一次都不执行
46
  while(false){
47
    echo '人呢?';
48
  }
49
  // do while 最起码执行一次 哪怕是false
50
  do {
51
   echo '进来了吗?';
52
  } while (false);
53
?>
数组
1
<?php
2
  // 设置中文编码
3
  header('content-type:text/html;charset=utf-8');
4
5
  // 定义数组 -- 索引数组
6
  $foodArr = array('榴莲','西兰花','鸡蛋','西兰花炒蛋');
7
8
  // 获取数组的元素
9
  // 下标从0开始
10
  echo $foodArr[3];
11
12
  echo '<br>';
13
14
  // 直接打印 数组的 所有内容
15
  // echo $foodArr;
16
  // 直接输出复杂类型
17
  print_r($foodArr);
18
19
  echo '<br>';
20
  // 获取数组的长度
21
  // 参数1 需要获取长度的数组
22
  echo count($foodArr);
23
24
  // 遍历 没有.length的语法
25
  // 获取数组的长度
26
  for($i=0;$i<count($foodArr);$i++){
27
      echo '<br>';
28
      echo $foodArr[$i];
29
  }
30
31
?>
索引数组 关系型数组
1
<?php
2
  // 设置中文编码
3
  header('content-type:text/html;charset=utf-8');
4
5
 // 关系型数组
6
 $person = array('name'=>'吴京','film'=>'战狼','wife'=>'谢楠');
7
8
 // 获取 内容
9
 echo $person['wife'];
10
11
 // 完整输出数组
12
 print_r($person);
13
14
 echo '<br>';
15
16
 // 遍历
17
 // $key 循环的键
18
 // $value 循环的值
19
 foreach ($person as $key => $value) {
20
   // 打印内容
21
   echo $key.'-----'.$value.'<br>';
22
 }
23
24
?>
二维数组
1
<style>
2
  span{
3
    color:hotpink;
4
    font-size:100px;
5
  }
6
</style>
7
<?php
8
  // 设置中文编码
9
  header('content-type:text/html;charset=utf-8');
10
11
  // 二维数组
12
  $starArr = array(
13
    array('name'=>'刘德华','film'=>'无间道','friend'=>'曾志伟'),
14
    array('name'=>'吴京','film'=>'战狼2','friend'=>'张翰'),
15
    array('name'=>'黄渤','film'=>'疯狂的石头','friend'=>'林志玲'),
16
    array('name'=>'汪峰','film'=>'春天里','friend'=>'那英')
17
  );
18
19
  // echo $starArr[2]['film'];
20
21
  for($i=0;$i<count($starArr);$i++){
22
    echo '<h2>明星:<span >'.$starArr[$i]['name'].'</span>出演了:'.$starArr[$i]['film'].'好朋友是:'.$starArr[$i]['friend'].' <br></h2>';
23
  }
24
?>
25
<p>写在php标签之外的代码  不会执行 原封不动的返回给浏览器</p>
26
<a href="#">戳我有惊喜哦</a>
生成页面步骤(解析数据)
1
      生成页面的步骤
2
        1.商业的网站的数据 是保存在?=>服务器的数据库中
3
          这里使用了一个 数组 作为模拟 =>假数据
4
        2.用户访问这个页面时
5
          读取数据
6
        3.生成对应的html代码 =>让页面好看一些
7
    -->
8
9
  <?php
10
    // 1.引入其他的php页面
11
    include 'data_fruit_list.php';
12
13
    // 2.读取数据
14
    //$arr = array();
15
$arr[0] = array('href' => 'detail/detail1.php?flag=banana','path' => 'img/banana1.jpg','name' => '香蕉');
16
    echo '<ul>';
17
    for($i=0;$i<count($arr);$i++){
18
      // 3.生成对应的html结构
19
      echo '<li>';
20
      echo '<a href="'.$arr[$i]['href'].'">点我看'.$arr[$i]['name'].'</a>';
21
      echo '<img src="'.$arr[$i]['path'].'" alt="">';
22
      echo '<span>'.$arr[$i]['name'].'</span>';
23
      echo '</li>';
24
    }
25
    echo '</ul>';
26
     
27
  ?>
form表单发送数据()
  1. 列表页
    index.php
    数据库获取数据==>假数据
    解析数据
    生成页面
    点击a标签
    跳转 具体的url 存在的页面 lol_detail.php
    能够提交数据 lol_detail.php?name=
  2. 详情页
    接收提交的数据
    去数据库查询=>假数据模拟
    生成html页面
    返回给用户
1
<!DOCTYPE html>
2
<html lang="zh-CN">
3
4
<head>
5
  <meta charset="UTF-8">
6
  <title>title</title>
7
</head>
8
9
<body>
10
  <!--  form表单发送数据
11
        action 指定提交的 url
12
        提交的方式  method
13
                get 不设置 默认是 get
14
                post
15
        表单元素 需要提交的数据
16
          使用name属性 进行标记
17
            name属性的值 可以随便起
18
            但是尽可能起的有意义
19
  -->
20
  <form action="./getData.php" method="get">
21
    <!--  文本框  -->
22
    <input name='superStarName' type="text" placeholder="请输入你喜欢的明星">
23
     <!--  提交按钮 -->
24
    <input type="submit">
25
  </form>
26
</body>
27
28
</html>
1
<?php 
2
    // echo '123';
3
    // 设置中文编码
4
    header('content-type:text/html;charset=utf-8');
5
6
    // 接收提交过来的数据
7
    // get
8
    // php中 为我们提供了一些 超全局变量
9
    // 跟 js中 window对象类似 不需要定义直接就可以使用
10
    // 是有值的
11
    echo $_GET;
12
    echo '<br>';
13
    print_r($_GET);
14
    // post 
15
 ?>
查询LOL英雄案例

action:提交的 url
method:
默认就是get
form表单通过get提交数据的本质是
在url的后面 拼接上 name = value
格式 lol_detail.php?lolHero=提莫
在url的后面?key=value
如果自己能够拼接url 也能够实现数据的提交

1
(浏览器中)
2
<!DOCTYPE html>
3
<html lang="zh-CN">
4
5
<head>
6
  <meta charset="UTF-8">
7
  <title>title</title>
8
</head>
9
10
<body>
11
  <!--
12
        action:提交的 url
13
        method:
14
              默认就是get 
15
        form表单通过get提交数据的本质是
16
            在url的后面 拼接上 name = value
17
            格式 lol_detail.php?lolHero=提莫
18
              在url的后面?key=value
19
            如果自己能够拼接url 也能够实现数据的提交
20
    -->
21
  <h2>英雄查询页面</h2>
22
  <form action="./lol_detail.php">
23
    <!--输入框  -->
24
    <input name='lolHero' type="text" placeholder="请输入你喜欢的英雄">
25
    <!-- 提交按钮  -->
26
    <input type="submit">
27
  </form>
28
</body>
29
30
</html>
1
(服务器中)
2
<!DOCTYPE html>
3
<html lang="zh-CN">
4
<head>
5
    <meta charset="UTF-8">
6
    <title>title</title>
7
</head>
8
<body>
9
<?php 
10
    // 设置中文编码
11
    header('content-type:text/html;charset=utf-8');
12
    // 接收数据 超全局变量
13
    // 获取提交过来的英雄的名字
14
    $heroName = $_GET['lolHero'];
15
16
    // 查询数据=>模拟的假数据中查询
17
    include './data_lol_detail.php';
18
    $hero = $heroArr[$heroName];
19
    
20
    // 生成页面 解析数据 创建好看的html结构 并返回
21
    echo '<h2>'.$hero['champion_title'].'--<span>'.$hero['champion_name'].'</span></h2>';
22
    // 图片
23
    echo '<img src="'.$hero['champion_icon'].'" alt="">';
24
    // 个性签名
25
    echo '<p>'.$hero['champion_info'].'</p>';
26
    // 位置
27
    echo '<h3>'.$hero['champion_tags'].'</h3>';
28
 ?>
29
</body>
30
</html>
循环输出HTML

当要输出的HTML结构较复杂是使用,减少字符串拼接,示例如下(了解即可)

1
<?php
2
  // 准备一些数据
3
  $heroArr =array(
4
    array(
5
    "champion_icon"=> "images/1498811286269.jpg",
6
    "champion_name"=>"凯隐",
7
    ),
8
    array(
9
    "champion_icon"=> "images/1493291013439.jpg",
10
    "champion_name"=>"洛",
11
    ),
12
    ?>
13
<!--  for循环的半边  -->
14
<?php for ($i=0; $i < count($heroArr); $i++) {  ?>
15
    <h1> <?php echo $heroArr[$i]['champion_name']; ?> ---- 感觉自己萌萌哒的 ^_^</h1>
16
    <img src="" alt="">
17
    <a href="#">萌你奶奶个腿</a>
18
<?php } ?>

语法本身没有意义,意义在于如何用于发去干一下什么事情

get方式提交数据

get 方式提交数据 总结
1.数据是拼接在url中
数据的安全性不好

2.数据的长度问题
理论上来说 url的长度 是可以任意修改的
有一些浏览器会限制url的长度
有一些服务器 对于长度太长的 url 直接就 屏蔽了
3.优点: 测试方便

多条数据的格式:
/getData.php?food=榴莲&doType=高压锅炖
xxx.php?key1=value1&key2=value2&key3=value3

​ print_r($_GET); //php中获取get方式提交,数组形式

post提交数据

post提交数据
action属性 提交的url
必须设置 method 默认是get
表单元素name属性
提交按钮

post
1.提交的数据不在url中
安全性好一些
2.post提交数据 没有长度限制
浏览器端只要你想 随意添加
服务器可以选择是否接受这么多的数据
3.如果要上传文件 必须使用 post

爱旅行案例步骤
  1. 需求
    用户默认访问打开的是 登陆页面
    登陆改为index
    首页换个名字
    登陆页面 输入完毕数据之后 点击提交 跳转到了 首页
    修改登录页面的一些设置

    action
    method
    name
    submit

    跳转到了首页之后 在首页的右上角 没有 注册跟登陆 取而代之的是

    xxx 你怎么才来
    删除默认的 注册跟 登陆
    获取通过post提交的数据 输出在 对应的位置即可
  2. 前后台合作
    前端程序员 写好网站的 静态页面 –>搞定

    用户现在对于界面的要求越来越高
    主要写页面的各种各样的交互效果

    后端程序员
    根据网站的业务逻辑

    业务逻辑-> 没有登录 去登录页 没有注册 去注册页 密码输入3次失败 冻结账号 登录成功之后 去首页 获取最新的 信息展示给用户
  3. get还是post
    如果是 像爱旅行 这种 跳转的方式 提交数据 一般是后端程序员来实现
    后端程序员 根据 需求 选择用哪种方式提交

  4. 页面不跳转 提交数据 ajax
    发送请求给服务器 也分 get 跟post
    工作时 因为后端代码 是后台程序员来编写

上传文件(必须用post方式)

准备工作:(HTML)

​ 提交方式 - post
​ form表单
​ input type = file name属性
​ 提交按钮
​ form表单属性
​ enctype 默认值是 application/x-www-form-urlencoded
​ 提交文件 multipart/form-data

​ (PHP)

​ // 接收提交的文件

​ // 超全局变量 用来接收提交的文件
​ print_r($_FILES);

/*
这是 打印出来的 $_FILES的值
Array (
[icon] => Array (
[name] => 1405937554667.png 上传的文件名
[type] => image/png 类型
[tmp_name] => C:\Users\51772\AppData\Local\Temp\php52F7.tmp 路径 临时
[error] => 0 错误编码
[size] => 13949 大小
)
)
*/

// php 代码执行完毕之后 临时文件就被销毁了

// 如果想要看到那个临时文件 可以 让php代码 执行的 稍微 慢一些 休息一会
// sleep 的目的只是为了 让大家看到临时文件
// sleep(5);

// 移动上传的文件 在 w3cschool的 文件分类中
// move_uploaded_file(file,newloc)
// 参数1 移动的文件
// 参数2 移动到哪里去

1
 move_uploaded_file($_FILES['icon']['tmp_name'],'./files/'.$_FILES['icon']['name']);
2
?>

<!–
如果要严谨一些 还需要添加一些判断
判断文件类型
判断文件是否存在
判断文件的大小

文章作者: Byron
文章链接: https://byronk.top/2019/10/04/php%E5%9F%BA%E7%A1%80%E4%BA%86%E8%A7%A3%E9%BB%91%E7%AE%B1%E8%A7%A3%E5%AF%86/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 byron's | BLOG
打赏
  • 微信
  • 支付宝

评论