php速成_day2

一、PHP中的多维数组

1、多维数组及其用途

多维数组用来存储多个元素,元素是一个数组的结构。

之前学习的数组,是一个一维数组。

$person = array(
‘name’ => ‘xiaoming’,
‘age’=>26,
‘job’=> ‘PHP’
);

可以使用多维数组,进行同时存储多个人的信息。

多维数组的写法

语法:

$depatment = array(
array(‘name’=> ‘xiaoming’,‘age’=> 26, ‘job’=> ‘PHP’),
array(‘name’ => ‘jerry’, ‘age’=> 23, ‘job’ =>‘HTML’),
.........
);

一般编程中,使用较多的是二维数组,最多使用三维数组。

2、多维数组的使用

<?php
// header
header('Content-Type:text/html;charset=utf8');
// 多维数组
// 表示一个部门里的多个人
$depatment = array(
  array('name' => 'xiaoming','age' => 26,'job' => 'PHP' ),
  array('name' => 'jerry','age' => 23,'job' => 'HTML' ),
  array('name' => '小强','age' => 25,'job' => 'C' ),
);
// 原样输出
echo '<pre>';
// 数组可以通过print_r输出
print_r($depatment);
// 输出显示多维数组
// var_dump($depatment);
// 输出二维数组里的第一个元素
// 数组不能够使用echo输出
// echo $depatment[0];
// var_dump($depatment[0]);
// echo '<hr>';
// var_dump($depatment[0]['name']);

之前访问一维数组的方式,是可以同索引数组通过下标,关联数组是通过key进行访问。

Tip:数组也可以通过print_r 输出

总结:刚才所使用的二维数组,外层数组是一个索引数组,内层的一维数组是关联数组。

3、遍历多维数组

  • for遍历
<?php
// header
header('Content-Type:text/html;charset=utf8');
// 多维数组
// 表示一个部门里的多个人
$depatment = array(
  array('name' => 'xiaoming','age' => 26,'job' => 'PHP' ),
  array('name' => 'jerry','age' => 23,'job' => 'HTML' ),
  array('name' => '小强','age' => 25,'job' => 'C' ),
);
// 遍历二维数组
// 获取数组元素的个数
$count = count($depatment);
// for遍历
for($i=0;$i<$count;$i++){
  var_dump($depatment[$i]);
}

count()函数可以统计数组的元素个数

for循环可以遍历二维数组中外层的索引数组

  • foreach遍历
<?php
header('Content-Type:text/html;charset=utf8');
// 多维数组
// 表示一个部门里的多个人
$depatment = array(
  array('name' => 'xiaoming','age' => 26,'job' => 'PHP' ),
  array('name' => 'jerry','age' => 23,'job' => 'HTML' ),
  array('name' => '小强','age' => 25,'job' => 'C' ),
);
// foreach
foreach ($depatment as $key => $value) {
  // 遍历最外层
  foreach ($value as $k => $v) {
    echo $k.':'.$v.'<br />';
  }
  echo '<hr>';
}

二、PHP中的函数

1、什么是函数

​ 函数是一个被命名、独立的代码段,它执行特定的任务,并可能给调用它的程序返回一个值。

  • 函数是被命名的。每个函数都有唯一的名称,在程序的其他部分使用该名称,可以执行函数中的语句,这个被称为调用函数。
  • 函数时独立的。无需程序其他部分的干预,函数便能够执行其任务。
  • 函数执行特定的任务。任务是程序运行时所执行的具体工作,如将一行文本输出到浏览器、对数组进行排序、计算立方根等。
  • 函数可以将一个返回值返回给调用它的程序。程序调用函数时,将执行该函数中语句,而这些语句可以将信息返回给调用它们的程序。

2、函数的定义

function 函数名(参数){
	执行的代码;
    return 返回值;
}

3、函数的功能

  • 代码重用,相同的操作,无需再此编写,可以直接调用此函数,实现功能

  • 模块化编程 使代码结构更加清晰好用

4、函数的起源

例1:想要进行打招呼的一个操作

<?php
// header
header('Content-Type:text/html;charset=utf8');
// 函数使用
// 爸爸打招呼
// echo '你好';
// // 妈妈打招呼
// echo '你好';
// // 姐姐
// echo '你好';
// 函数定义
// 打招呼的一个函数
function sayHello($name)
{
  // return返回值
  // 函数return之后,后续代码都不执行
  return '你好,'.$name;
}
// 调用函数进行打招呼
// 爸爸打招呼
echo sayHello('爸爸');
echo '<hr>';
// 妈妈打招呼
echo sayHello('妈妈');
echo '<hr>';
// 姐姐打招呼
echo sayHello('姐姐');

形参:在函数定义时,写一个参数。

实参:在函数调用执行时,传入的参数。

注意:return之后的代码都不执行了。

5、PHP中函数的类型

​ PHP中可以使用大量函数,既可以使用系统内部定义好的函数,也可以自行实现自定义函数,来提高代码的重用性。

函数的类型:

  • 系统函数 PHP内部的函数 5000+种

  • 自定义函数 用户 程序员自己定义的函数

6、PHP中的系统函数(手册查询)

使用PHP系统函数,可以使代码更加节省。

  • 日期和时间函数

    //设置php的时间函数时区

    date_default_timezone_set()

    date_dafault_timezone_set(“PRC”)

    备注:PRC是中华人民共和国(The People's Republic of China )

<?php
// 设置中国人民共和国时间
date_default_timezone_set('PRC');
// 设置显示时间
// 获取年份year
echo date('Y');
// 获取月份month
echo '<hr>';
echo date('m');
// 获取天day
echo '<hr>';
echo date('d');
// 获取小时
echo '<hr>';
echo date('H');
// 分钟
echo '<hr>';
echo date('i');
// 秒
echo '<hr>';
echo date('s');
echo '<hr>';
echo date('Y-m-d H:i:s');
echo '<hr>';
// 时间戳
echo time();
// 通过传入的时间戳,格式化为一个时间
echo '<hr>';
echo date('Y-m-d H:i:s',time());

date() ,如2010-04-09 01:48:06

显示的时间和我们的时间(北京时间)

time()返回当前的 Unix 时间戳

从1970年0时开始,距离这个时间的间隔,被称为时间戳。

Tip:在学习PHP函数过程中,学会使用查询手册

  • 字符串函数(函数较多)

    • explode() 使用一个字符串分割另一个字符串输出数组
      • 第一个参数 分割的标记
      • 第二个参数 需要分割的字符串
    <?php
    // 分隔符字符串
    $str = 'hello ,php';
    $array= explode(',',$str);
    var_dump($array);
    //取出字符串中的php
    echo '<hr>';
    echo $array[1];
    
    • implode() Join array elements with a string输出字符串

      类似于胶水的功能,把数组中的元素,通过某一个标记,进行粘连起来

      • 第一个参数:以什么标记粘连,可以传空字符串

      • 第二个参数:需要粘连的数组

    • md5() 用MD5方式加密字符串,返回是32位字符串

      在数据库存储密码,不能够明码存储,需要进行加密操作

    • strlen() 获取字符串的长度

    • stristr() 查找字符串在另一个字符串中第一次出现位置 并返回

      • 第一个参数:查询的字符串

      • 第二个参数:需要查找的字符

    • mb_strlen() 获取字符串的长度

      • 第一个参数:查询的字符串

      • 第二个参数:字符串的编码格式

      多字节字符的使用函数,中文的utf8编码,一个字占3个字节

    • trim() 去掉字符串两端的空格

      • 第一个参数:需要处理的字符串

      • 第二个参数:需要去掉的字符串的标识,默认可以不传,去除空格

    • str_repeat() 重复一个字符串

      • 第一个参数:需要重复的字符串

      • 第二个参数:需要重复的次数

    • str_replace() 子字符串替换

      • 第一个参数:查询需要替换的字符串

      • 第二个参数:替换称为什么

      • 第三个参数:替换的字符串

  • 数学函数

    • rand() 产生一个随机整数

      • 可以不传参数,也可以传参数

      • 第一个参数,返回的最小值 min

      • 第二个参数,返回的最大值 max

    • eil() 进一法取整 向上取整

    • floor() 舍去法取整 向下取整

    • round() 对浮点数进行四舍五入

三个函数的第一个参数都是需要处理的float浮点数。round函数的第二个参数,可以进行选择十进制小数需要保留的位数。

7、综合案例:生成4位随机验证码

使用PHP的系统函数、字符串函数和数学随机值函数。实现验证码的随机值(4位)

验证码的字符串:大小写字母、数字

思路:通过每次生成一个随机的字符串,拼接起来

①每次生成一个随机的字符串

②生成4次

③把4个字符串进行拼接

Tip:字符串也可以通过下标的方式访问字符串

$str = ‘abcd‘

b就是$str[1]

<?php
// header响应头
header('Content-Type:text/html;charset=utf8');
// 定义函数
function code($length)
{
  // 验证码的随机码的生成 4位
  // 随机码包含元素定义
  $str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  // echo $str[10];
  // 最后一位的下边,最大的下标
  $max = strlen($str) - 1;
  // echo $max;
  // 定义随机码
  $code = '';
  // 循环拼接字符串
  for($i=0;$i<$length;$i++){
    // 先拼接再赋值
    $code .= $str[mt_rand(0,$max)];
  }
  echo '验证码的值为:'.$code;
}
// 函数调用
code(4);

三、文件包含

1、什么是文件包含

在很多网页会存在一些公共部分。可以把这些公共部分,进行分离出来。

其他页面有使用到这些公共部分,就可以直接引入。

2、模版分离的步骤

页面一般可以使用 ’三刀’。把页面的公共的页头(header)和页脚(footer)。其他页面可以使用公共的页头和页脚。

  • 把公共的页头和页脚进行抽离出来
  • 把页头和页脚的文件保存到一个公共文件夹(public)
  • 其他页面使用可以直接通过PHP对应语法进行引入即可

3、模版分离实战

  • 把页头和页脚进行分离
  • 创建public公共文件夹存储公共部分
<!-- 页头部分 -->
这是是头部的显示部分
<hr>
  • 通过php的包含语法进行引入操作

语法:

include 和 require

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
<?php //include './public/header.php';?>
<?php require_once './public/header.php';?>
<?php require_once './public/header.php';?>
<!-- 页面主体部分 -->
这是页面主体的部分
<?php //include './public/footer.php';?>
<?php require_once './public/footer.php';?>
<?php require_once './public/footer.php';?>
</body>
</html>

4、include 和 require的区别

  • include的包含,如果加载的文件不存在,会报一个警告错误,但是不会影响后面代码的执行
  • require如果发生错误,会报一个致命错误,结束后续代码的运行

5、include_core 和 require_core的区别

once包含一次,避免重复包含文件

总结:一般情况下在开发中,为了避免由于包含代码出现错误,造成的后续代码错误,就使用require。如果在生产环境,项目上线了最好使用include。

require_once和include_once如果文件包含较多,可以使用。但是它是性能消耗的,会先判断是否引入了目前需要引入的文件。

四、实现简单注册功能

1、编写表单

表单是HTML页面进行数据提交的一种方式

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>程序员注册页面</title>
</head>
<body>
  <form action="do.php" method="post">
    姓名<input type="text" name="name" />
    <hr>
    密码<input type="password" name="password" />
    <hr>
    性别<input type="radio" name="sex" value="男" checked="checked" />男
        <input type="radio" name="sex" value="女" />女
        <input type="radio" name="sex" value="保密" />保密
    <hr>
    爱好<input type="checkbox" name="hobby[]" value="吃饭">吃饭
        <input type="checkbox" name="hobby[]" value="睡觉">睡觉
        <input type="checkbox" name="hobby[]" value="打豆豆" checked="checked">打豆豆
    <hr>
    备注<textarea name="remark" cols="40" rows="10"></textarea>
    <hr>
    <input type="submit" name="submit" value="注册">
    <input type="reset" name="reset" value="重置">
  </form>
</body>
</html>

表单的注意点:

所有的表单元素必须在form标签中

action 提交到的文件地址

method 提交数据的请求方式 服务器端页面会根据此方法进行数据接受

文本框

密码框

单选按钮

多选按钮

文本域

提交按钮 重置按钮

2、表单的接收

表单的接收数据的方式。根据表单提交方式:

  • get 数据会从浏览器url地址显示 $_GET
  • post 不会显示在url地址上 传输数据更大一些 $_POST
<?php
// header响应头信息
header('Content-Type:text/html;charset=utf8');
// 接收用户提交的表单数据
// var_dump($_POST);
// 判断表单是否提交
if(isset($_POST['submit'])){
  echo '姓名:'.$_POST['name'];
  echo '<hr>';
  echo '密码:'.$_POST['password'];
  echo '<hr>';
  echo '性别:'.$_POST['sex'];
  // 处理爱好
  $hobbyArray = $_POST['hobby'];
  // 把数组拼接成为字符串
  $hobby = implode(',', $hobbyArray);
  echo '<hr>';
  echo '爱好:'.$hobby;
  echo '<hr>';
  echo '备注:'.$_POST['remark'];
}

3、完善表单的接受功能

isset函数检测是否存在,存在返回true,否则false,这里用来检测表单是否提交

4、复选框的接收和处理

复选框可以接收到数组信息,之后可以通过系统函数进行拼接起来。

表单页面的处理

5、接收用户的注册信息

五、文件上传

1、什么是文件上传

文件上传也就是把用户的文件上传服务器的操作。

用户会员中心的头像,需要用户上传。头像上传

2、文件上传的准备(表单)

  • 表单提交方式必须为post
  • 表单属性 enctype="multipart/form-data"
  • input type属性使用file

3、服务器端(php页面)接收上传文件

服务器端PHP页面接收用户上传的文件信息,通过$_FILES接收

  • $FILES["userfile"]["name"] 上传文件的名称
  • _$_FILES["userfile"]["type"] 上传文件的类型
  • $FILES["userfile"]["size"] 上传文件的大小
  • _$_FILES["userfile"]["tmp_name"] 上传文件的临时名称及其位置
  • $_FILES["userfile"]["error"] 上传是否存在错误信息

4、实现文件上传功能

实现文件上传,也就是把文件移动到对应的文件夹的操作

move_uploaded_file(临时文件位置,移动到的位置)

5、解决后续问题

生成规定格式的文件名称,解决文件覆盖的问题和统一命名的规范

坚持这种真诚,那么总归能遇到良人。
原文地址:https://www.cnblogs.com/jiaxiaozia/p/12323495.html