PHP

1-0 数组

1-1 php数组的特点

1-1-1 可以存储不同类型的值如数字和字母;

1-2 数组指针和方法

current() key() next()

$arr = array( 1 , 'a' , 2 , 3 ) ;
echo current($arr);  //1,当前指针所指向的元素的值
echo key($arr);   //0,当前指针所指向的元素的下标
next($arr);   //将指针移向下一个元素
echo current($arr);  //a
echo key($arr);   //1

each() 返回当前指针所在元素的索引和值

$arr = array( 8 , 1 , 2 ) ;
print_r( current($arr) ) ;   //8 , 指针所在元素的值
//返回当前指针所在元素的索引和值
$item = each($arr) ;
print_r( $item[0] ) ;  //0 ,索引
print_r( $item[1] ) ;  //8 ,值
//指针已经往后移动一个所以当前值为1
print_r( current($arr) ) ;   //1

list()

  • 依次取得数组$arr1中下标为0,1,2,3, ….的元素的值,并一次性放入多个变量中(一一对应).
  • 注意:只能实现这样的“从0开始的连续数字下标的元素的取值”(但并非要求数组的元素的顺序为同样的数字顺序)
//list()
$arr = array( 8 , 1 , 2 ) ;
list($lt1,$lt2,$lt3) = $arr ;
print_r( $lt1 ) ;  //8
print_r( $lt2 ) ;  //1
print_r( $lt3 ) ;  //2
//按照元素的下表赋值,不是按照数组元素的顺序赋值
$arr = array( 0=>8 , 2=>1 , 1=>2 ) ;
list($lt1,$lt2,$lt3) = $arr ;
print_r( $lt1 ) ;  //8
print_r( $lt2 ) ;  //2
print_r( $lt3 ) ;  //1

1-? 练习

  • 冒泡排序
//冒泡排序
function mp ( $arr ){
    $ct = count( $arr ) ;
    for( $i=0 ; $i<$ct-1 ; $i++ ){
        for( $j=0 ; $j<$ct-1-$i ; $j++ ){
            if( $arr[$j] > $arr[$j+1] ){
                $tmp = $arr[$j] ;
                $arr[$j] = $arr[$j+1] ;
                $arr[$j+1] = $tmp ;
            } ;
        } ;
    } ;
    return $arr ;
} ;

$arrs = mp( $arr ) ;


foreach ($arrs as $key => $value) {
    echo $value ;
} ;

2-0 跳转

2-1立即跳转

当前页面是tst.php

header('Location:jump_otherPage.php');//跳转到otherPage.php

请求过程:稍显浏览器想服务器请求tst.php 服务器在响应的时候发送一条重定向的指向给浏览器,重定向到otherPage.php ,浏览器重新请求otherPage.php页面

  • header(); 之后的代码也会执行,所以最好写上die;

2-2 提示跳转

 header( 'Refresh:3 ; URL=otherPage.php' );
 echo '管理员非法';   //提示内容
 die; //强制结束当前代码执行
  • 由于就是一个普通的页面展示,提示的样式,可以轻松定制;

2-3 案例中实现跳转

会话技术

  • cookie是浏览器技术,浏览器向请求服务器请求数据的时候服务器给浏览器设置了cookie,在浏览器第第二次想服务器请求的时候会将cookie带向服务器,
  • 对cookie进行增删改查
//有则更改,无则增加,值为空字符串则表示删除
Setcookie(key,value);
  • php获取cookie
使用$_COOKIE超全局数组变量来获取cookie
php核心,在初始化阶段,会将所有请求的cookie数据整理到$_COOKIE变量中,供脚本使用;
每个$_COOKIE中的元素对应一个cookie变量,元素的键就是key,元素的值就是value;
  • 设置cookie有效时间
setcookie('nme','wong',time()+60) ;
  • 删除cookie
setcookie('nme','',time()-1) ;
  • 设置cookie永久有效
PHP_INT_MAX  
  • cookie的有效路径
默认:cookie在当前路径及其后代路径有效
路径:不是代码所在文件的本地磁盘路径,而是网站路径   www.baidu.com/dist/login/php
不同路径:不同路径下同名的cookie可以同时存储于浏览器
浏览器发请求会先查找当前目录内有效的cookie再向上查找,将所有有效的cookie都携带到服务器端,在服务器形成$_COOKIE时,会出现重写效果,先出现的保留。
  • 设置cookie在整站有效
set('nme','zh',0,'/');
  • 有效域
默认:cookie仅仅在当前域下有效
可以设置cookie有效域扩展到某个一级域名下的所有子域
baidu.com  一级域名
tieba.baidu.com 二级域名

setCookie('nme,'zh',0,'','baidu.com');  百度下所有子域名都有效
  • 是否安全传输
https://   加密的http协议
默认cookie不论浏览器发出的http还是https都会讲有效的cookie携带导服务器
如果将setCookie()的第6个参数设为true表示激活仅安全连接传输,此时浏览器在想服务器发出请求时如果请求为http则不会携带cookie;
  • HTTPONLY
默认:浏览器存储的cookie是可以被其他脚本处理的
通过第7个参数,设置HTTPONLY特性,表示仅仅在http请求中使用
setCookie('nme','zh',0,'','',false,false);  //关闭HTTPONLY
setCookie('nme','zh',0,'','',false,true);  //开启HTTPONLY
  • 语法和大小
cookie值,仅仅支持字符串;
cookie的键,可以写成下标形式;
一个网站只支持4K的大小;

setCookie() 之前不能出现任何输出;

session

  • cookie的弱点

    • 原始数据安全性较低,因为原文存储于浏览器;
    • 如果cookie数据量大,每次请求会增加带宽;
  • session 将会话数据存储于服务器
    为每个会话数据建立独立的会话数据区(来存储当前会话的全部数据),每个会话数据区存在唯一的标志,做配对使用

  • 开启session机制
    这里写图片描述

  • $_SESSION操作session数据

每个元素就是session数据,就像操作普通数组一样操作$_SESSION
$_SESSION['class_name'] = 'php12' ;
unset($_SESSION['class_name']);

每一个脚本周期之内想要操作session必须先开启session
session_start() ;
  • 用session完成登录状态的存储

  • session的属性

    • 有效期:会话周期结束;
    • 有效路径: 整站有效;
    • 有效域: 当前域;

    - 是否仅安全连接传输:否;

重写session的存储机制

  • 便于管理大量的session个数据
  • 便于web服务器集群共享

$_SERVER

 $_SERVER['PHP_SELF']  ;   //0417/myCode/test.php
 $_SERVER['QUERY_STRING']  ;   //name=tom&age=18   保存get请求的数据
  • header()
    header(‘Content-Type:text/html; charset=utf-8’);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值