Blogger Information
Blog 10
fans 0
comment 0
visits 6362
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
8月15日学习笔记
Brain
Original
764 people have browsed it

php学习

1、网络请求响应流程

  • 浏览器—发起html请求—>服务器
  • 浏览器<—响应html请求—服务器
  • 浏览器—发起php请求—>服务器—转发—>PHP解释器—操作—>数据库
  • 浏览器<—响应html请求—服务器<—返回—php解释器<—返回结果—数据库

2、环境

  • wamp : windows+apache+mysql+php
  • phpstudy
  • 根据系统选择相应软件安装包

3、php基础

  • 以“<?php ?>”包裹的代码段,纯PHP文档尾部标签可以不写,和Html混写时,不能省
  • php代码可以定在Html文档的任何位置
  • php变量必须先声明再使用
  • php变更声明后,值为NULL
  • 将变量赋值为NULL,即可销毁变量

4、php函数

  • echo 输出变量,无返回值
  • var_dump() 打印变量类型、长度和值
  • unset() 销毁变量,无返回值
  • isset() 检测变量是否存在,返回布尔值
  • gettype()查询变量类型
  • tostring()转换成字符串
  • var_export()返回变量的字符串表示,带‘’表示,多用于sql语句定义
  • error_reporting(E_ALL)打开所有报错的开关
  • empty()检测变量是否为空,和NULL不一样

5、php程序的组成

  • 起始标签 <?php ?>
  • 注释 //*//
  • 代码段 function func(){}
  • 语句 *;

6、代码段

  • 函数
    |—内置函数
    |—自定义函数

7、变量

  • 变量是临时存储数量的容器,实现数据复用的手段
  • 内置变量:系统定义过的变量
  • 自定义变量
    |—用户设置的变更,命名不可用内置变量名
    |—变量名区分大小写,函数不区分大小写
    |—变更名$开始,跟字母或下划线开始的字母、下划线和数字的组合
    |—中文可以做变更名,但不建议用
    |—可变变量,变量值作为另一变量的变量名

8、数据类型

  • 基本类型:单值,一个变更对应一个值,标量
    |—字符串
    |—数值
    |—布尔类型
  • 复合类型:由基本类型或复合类型组成,一个变更对应一组数据
    |—数组 $arr=[‘123’,’abc’,’汉字’,[‘arr’,’数据’]]
    |—对象 $obj= new stdClass; $obj->name=’jk’,$obj->age=’18’
  • 特殊类型
    |—NULL,用is_null()函数检测
    |—资源类型,用gettype()检测,返回’resource’

9、变量类型转换

  • 自动转换:根据运算需求自动转换成对应的变更类型
    |—算术运行符会将运算符前后的变更自动转换成整型,字符串检测开始的数字
    |—连接运行符‘.’会将前后的变更自动转换成字符串,然后连接
  • 强制转换:只是临时转换,原值不变
    |—(int)$str:强制将字符串转换成整型
    |—函数转换intval($str),默认转换为十进制,增加参数intval($str,16)换十六进制转换
    |—函数转换strval($var),转换成字符串
  • 永久转换:
    |—settype($str,’integer’),永久转换成整型

10、作用域

  • 作用域是变更的生效范围,是查找变量的工具
  • 全局作用域:函数作用域之外的空间
  • 函数作用域:函数内部定义的变量,作用域在函数内
  • 作用域变更:在函数内部声明的变量前加global,则变为全局变量,可以函数内部使用
  • 超全局变量:不受作用域范围限制,一般全大写,如$GLOBALS
    |—$GLOBALS所有全局变量
    |—$GLOBALS[‘username’],访问用户定义的全局变更

11、常量:不受作用域范围限制,一般全大写,不带$,声明时要赋值,不能更新,不能销毁’unset()’

  • 常量的声明
    |—const SITENAME=”jk1536.com”,用关键字声明一个常量
    |—define(‘SITNAME’,’jk1536.com’),用函数声明一个常量
    |—在类中,只能用关键字const声明常量
    • 常量的获取
      |—get_defined_constants(),查看系统常量
      |—get_defined_constants(true),分级查看系统常量
      |—get_defined_constants(true)[‘user’],查看用户设置的常量’user’
      |—用函数获取常量 constant(‘APP_PATH’)
      |—直接打印常量 echo APP_PATH;
      |—常名可以变量化,即用一个变量存储常量名,但此时只能用constant()函数获取
  • 预定义常量
    |—echo ‘PHP版本号:’.’PHP_VERSION’.’<br>‘;
    |—echo ‘当前操作系统’.’PHP_OS_FAMILY’.’<br>‘;
    |—echo ‘最大整数’.’PHP_INT_MAX’.’<br>‘;
    |—echo ‘最大浮点数’.’PHP_FLOAT_MAX’.’<br>‘;
    |—echo ‘目录分隔符’.’DIRECTORY_SEPARATOR’.’<br>‘;
    • 魔术常量,值是变化的
      |—echo ‘当前文件’.’FILE‘.’<br>‘;
      |—echo ‘当前目录’.’DIR‘.’<br>‘;
      |—echo ‘当前行号’.’LINE‘.’<br>‘;

12、命名空间

  • 用namespace ns {}声明,不加空间名的就是根命名空间namespace{}
  • 只要声明了命名空间,所有代码就必须写在命名空间内
  • 跨空间调用,就要加上空间路径 \ns**

13、变量过滤器

  • 单个变量过滤用 filter_var()
    |—filter_var($var,FILTER_VALIDATE_INT),$var为整型时,返回其值,否则返回false
    |—filter_var($var,FILTER_VALIDATE_INT,$options),$options=[‘options’=>[‘min_range’=>18,’max_range’=>60]]
    |—FILTER_VALIDATE_EMAIL
  • 多个变量过滤用 filter_var_array()
    |—filter_var_array([$a,$b],FILTER_VALIDATE_INT)
  • 外部变量过滤用filter_input()
    |—外部变量的来源:表单、cookies、服务器变量、web服务数据、数据库查询结果
    |—用于验证GET、POST、PUT等传过来的值的过滤
    |—filter_input(‘输入类型get/post’,字符串表示的变更名,过滤器,选项参数)
    |—echo ‘id=’.$GET[‘id’];
    |—filter_input(INPUT_GET,’id’,FILTER_VALIDATE_INT,$options);

    • 同时过滤多个外部变量
      |—FILTER_SANITIZE_STRING,过滤掉非法字符
      $args=[
      1. 'username'=>FILTER_SANITIZE_STRING,
      2. 'email'=>FILTER_VALIDATE_EMAIL,
      3. 'age'=>['filter'=>FILTER_VALIDATE_INT,'options'=>['min_range'=>18,'max_range'=>60]],
      4. 'blog'=>FILTER_VALIDATE_URL,
      ];
      filter_input_array(INPUT_GET,$args)
  • 常用的过滤器函数

序号 函数 描述
1 filter_list() 返回所支持的过滤器列表
2 filter_id() 返回与某个特定名称的过滤器相关联的id
3 filter_var() 过滤单个变量
4 filter_var_array() 过滤多个变量
5 filter_has_var() 检测是否存在指定类型的变量
6 filter_input() 过滤单个外部变量
7 filter_input_array() 过滤多个外部变量
  • 外部变量类型:’INPUT_GET’,’INPUT_POST’,’INPUT_COOKIE’,’INPUT_SESSION’
  • 过滤器分为验证过滤器和清理过滤器
    |—验证过滤器

    |序号|过滤器函数|描述|
    |——|————-|—-|
    |1|FILTER_VALIDATE_INT|验证整数|
    |2|FILTER_VALIDATE_FLOAT|验证浮点数|
    |3|FILTER_VALIDATE_BOOLEAN|验证布尔值|
    |4|FILTER_VALIDATE_EMAIL|验证邮箱|
    |5|FILTER_VALIDATE_URL|验证url地址|
    |6|FILTER_VALIDATE_IP|验证IP地址|
    |7|FILTER_VALIDATE_REGEXP|正则验证|

    |—FILTER_VALIDATE_BOOLEAN布尔选项的返回值类型
    |—返回’true’的情况:’1’,’true’,’on’,’yes’….
    |—返回’false’的情况:’0’,’false’,’off’,’no’
    |—返回’null’的情况:除过以上情况

    |—清理过滤器:去掉非法字符,仅保留指定内容

    |序号|过滤器函数|描述|
    |——|————-|—-|
    |1|FILTER_UNSAFE_RAM|保持原始数据|
    |2|FILTER_CALLBACK|自定义函数过滤数据|
    |3|FILTER_SANITIZE_STRING|去掉标签以及特殊字符:’strip_tags()|
    |4|FILTER_SANITIZE_ENCODED|URL-encode字符串,去除或编码特殊字符|
    |5|FILTER_SANITIZE_SPECIAL_CHARS|HTML转义字符|
    |6|FILTER_SANITIZE_STRIPPED|string过滤器别名|
    |7|FILTER_SANITIZE_EMAIL|仅保留合法的email地址|
    |8|FILTER_SANITIZE_URL|仅保留合法的url地址|

    • 选项与标志
      |—可以对过滤器设置选项和标志,对数据进行更加精准的过滤处理
      |—选项 : ‘options’=>[…]
      |—标志 : ‘flags’=>[…]
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post