1+X Web前端等级考证 | PHP 技术与应用(中级重点)

    科技2022-08-11  154

    文章目录

    动态网站动态网站开发所需构件PHP技术基础php 的诞生php 的优点php 的缺点 开发环境php 语言基础文件命名语言标记注释符与结束符常用命令和系统函数变量与常量常量变量变量与常量的差异 数据类型数据类型转换字符串数组数组转JSON 运算符流程控制流程分支 循环结构while循环do……while 循环for循环 php函数系统函数自定义函数 函数参数:变量作用域全局变量引用变量传参静态变量 超全局变量正则表达式正则函数用单引号定义正则PCRE 规则与函数元字符模式修正符号 子模式与后向引用子模式后向引用 文件处理系统目录操作函数 文件操作文件属性文件操作函数文件判断用函数 文件上传文件上传错误常见编码文件上传函数: php 图形图像处理--GD库绘制基本几何图形图像填充在图像中添加文字 会话控制 Cookie与Sessioncookiesessioncookie 与 session 的区别 php魔术方法

    动态网站

    概念

    误区:不是指网站当中包含动态图片、滚动图等动态效果正解:采用数据库技术开发的网站,网页上的内容都是通过数据库提取出来动 态更新的

    B/S 软件

    通过浏览器和服务器(Browser / Server)进行通信的软件,客户端给服务器发请 求,服务器处理客户请求返回结果优势:不用下载,不用更新,打开网页,直接使用劣势:功能受限(受浏览器环境限制)

    使用技术

    前端:html+css+javascript后端:php、asp、java数据库:MySQL、SQLServer、ORACLE、DB2

    动态网站开发所需构件

    web 前端开发

    HTMLCSSjavascript浏览器

    Web后端开发 (服务器端)

    web服务器:Apache、IIS、Tomcat…数据库:MySQL、MariaDB、Oracle、SQL Server…服务器端编程语言:PHP、ASP、JSP…

    PHP技术基础

    PHP(原名 Personal Home Page的缩写,已经正式更名为 “PHP: HypertextPreprocessor”,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了 C 语言、Java和 Perl 的特点,利于学习,使用广泛,主要适用于Web 开发领域。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创的语法。用 PHP 做出的动态页面与其他的编程语言相比,PHP 是将程序嵌入到 HTML文档中,执行效率很高

    php 的诞生

    1994年 Rasmus Lerdorf 设计了 PHP 的第一个版本 PHP1.0,并于 1995年将其通过社区发布。1996年又设计了 PHP2,1998年,由于 Zeev Suraski 和 Andi Gutmans 当时正在做毕业设计,需要一个用于开发 Web 程序的语言,他们也考虑了 asp 和jsp,但由于 ASP 只能运行在 Windows 平台,而 JSP 又过于复杂,因此,他们最后选择了 PHP,但他们发现,PHP 的功能当时还十分有限,因此,他们决定为 PHP重新编写底层的解析程序,这就是 PHP 的第一个被广泛使用的版本----PHP3.0。

    php 的优点

    简单易学 既能面向过程,又能面向对象,安装后各种扩展集一身,包括但不限于mysql、json、mbstr 等,方便至极。html 和 PHP 混写,执行效率很高,最新版本都内置了小型 webserver(连 apache都不用)。日臻完善 语言创建者积极上进优化。各大 php 论坛非常活跃。框架成熟 框架层出不穷,国外 Ci、laravel、kohana、zf,国内 thinkphp 功能完善,敏捷开发就靠它!!使用广泛 最重要的是大小公司都用,全球前 100 万的站点中,有 70%左右的站点用PHP 开发!!!!

    任何一门编程语言,有优点就有缺点

    php 的缺点

    标准库的函数名、参数顺序实在是难以预测 例如:字符串操作系列函数,strpos、strcspn 里两个词素没有任何分隔符,到了 strreplace 、 strrepeat 却又冒出了下划线协调性和可靠性 例如:变量名是大小写敏感的,函数名和类名却是大小写不敏感的奇异的写法 例如:数组末尾添加一个元素, $arr[] = 1PHP 的异常捕获系 统非常异常 很难说清楚到底哪些情况会抛出异常哪些并不会

    开发环境

    要想使用这门语言,需要搭配相应的开发环境,主要包括:

    Apache web 服务器MySQL 数据库PHP 语言引擎 可以一个一个安装配置 ,但是对于新手来说,繁琐麻烦,可以使用集成的开发环境: 例如WAMP,XAmmp,phpstudy等,安装非常简单

    运行原理:

    get 请求: 从服务器上获取数据post 请求: 向服务器提交数据

    php 语言基础

    文件命名

    文件后缀名为 php文件名中不可包含中文、空格、特殊符号建议使用有意义的英文单词命名

    语言标记

    //标准格式 <?php .... ?>

    *注意:纯 php 脚本文件要求:

    开始标签要在第一行顶头写删除结束标签。*

    php标签之外是 html 语言环境,在纯 php代码环境下,这些 html 字符(包括看不 见的空格或者回车,制表符号)也会一同输出,引发意外错误。因此,在编码规范 中规定:库文件、class 类文件等只要是纯 php代码的文件,要删除结尾的 ?> 结束 标签。

    注释符与结束符

    <?php // 单行注释 /* 多行注释 */ // 结束符使用英文分号 “;” ?>

    常用命令和系统函数

    echo echo输出 : 只能输出字符串、数字、布尔(true:1 false:空)类型的数据 var_dump() 此函数显示一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展 开值,通过缩进显示其结构 注意: var_dump中的变量必须是存在的,如果变量存在但值是空,则返回 false ; 没有变量时,则返回 NULL 该函数有输出的功能,因此不必加其它的输出函数require 与 include require 常用于引入 重要 文件,若引入失败会直接影响到当前整个脚本,引入失败报 Error错误include 常用于引入 普通 文件,若引入失败不会对当前脚本有较大的影响,引入失败报Warning错误require_once 避免重复引入,其他规则同 requireinclude_once 避免重复引入,其他规则同 include header 用于定义 HTTP 协议头信息。

    变量与常量

    常量

    声明变量:$命名规则:字母数字下划线、首字母不能为数字、严格区分大小写、且不能使用关键字!推荐驼峰命名法变量销毁:unset(变量名),被销毁的变量在内存中被释放引用变量: 用 & 符号引用

    变量

    使用 define关键字定义常量,常量命名要全部大写,常量的数据类型不能是 资 源、对象

    变量与常量的差异

    差异变量常量定义$声明define()函数定义命名大小写敏感必须大写(行业规范)赋值可以重新赋值不能再赋值数据类型8种数据类型只能是标量销毁unset() 销毁不能销毁判断方法isset() 判断是否定义defined() 判断是否定义作用域局部作用域全局作用域

    数据类型

    八种数据类型

    四种标量类型 布尔型(boolean)整 型(integer)范围:2^32 或 2^64(超出自动转换为浮点型)浮点型(float)范围:双精度字符串(string) 两种复合类型 数组型(array)对象型(object) 两种特殊类型 资源型(resource)空 型(null)

    不同进制 对象型 具有一定功能和特征的单个事物,对象是属性和方法的集合资源型 变量可以是文件夹、一个文件、从数据库中得到的结果集等,操作这个变量,相当于操作这些资源。

    NULL 型 null 也是数据,通常表示一种状态,变量没有任何值,就用 null 表示。以下情况会得到 null: • 直接将一个变量赋值为 null • 将一个变量销毁后再次使用该变量 • 直接使用一个不存在的变量

    数据类型转换

    自动类型转换: 在特殊运算时,会有自动类型转换的情况

    自动转换为: false自动转换为:true自动转换为:int自动转换为: string整型: 0非 0整数true : 1true : “1”浮点: 0.0或 0.00非 0浮点数false : 0false : " "字符串: " " 或 “0”非空字符串null: 0null: " "数组:空数组非空数组null对象未知变量(或被销毁变量)

    强制类型转换

    改变原变量类型 使用 settype() 函数可以将一个指定变量强制转换为另一种指定类型不改变原变量类型 格式:新变量 = (指定变量类型) 原变量; // 强制类型转换:不改变原变量类型 // 定义一个存储变量 $num = 1; $newNum; // 用于接收转换之后的变量 // 开始转换 $newNum = (Boolean) $num ; //true $newNum = (Integer) $num; //1 $newNum = (Float) $num; //float 1 $newNum = (String) $num; //"1" $newNum = (Array) $num; //Array $newNum = (Object) $num; //Object

    常用变量检测函数

    函数说明gettype()判断变量类型:返回 boolean、integer、double( float 返回“double”)、string、array、object、resource、null、unknown typeisset()检测变量是否存在empty()判断一个变量是否为空(字符串、数组、0、null)其他判断变量类型的系列函数isarray() 、 isbool()、isfloat() 、isinteger()、isnull() 、 isnumeric()、isobject() 、 isresource()、 isstring()和 isscalar()是否为标量

    常用数学运算函数

    函数名语法说明randrand([int, int])返回一个随机整数mt_randmt_rand ([int, int])使用 Mersenne Twister 算法返回随机整数absabs (mixe)返回数字的绝对值minmin(array) min(mixed,mixed [, …] )返回最小值maxmax (array) max(mixed,mixed [, …] )返回最大值roundround (float [, int [, int]])四舍五入floorfloor (float)舍去小数部分取整ceilceil ( float)小数部分非零返回整数部分就加 1powpow(mixed, mixed)返回 base的 exp 次方的值sqrtsqrt (float)返回平方根sinsin (float)返回正弦值coscos (float)返回余弦值tantan (float)返回正切值deg2raddeg2rad (float)将角度转换为弧度bindecbindec (string)二进制转十进制decbindecbin (int)十进制转二进制octdecoctdec (string)八进制转十进制decoctdecoct (int)十进制转八进制hexdechexdec (string)十六进制转十进制dechexdechex (int)十进制转十六进制expfloat exp(float arg)返回 e 的 arg 幂次值,e 为自然对数的底数,值为 2.718282。pifloat pi (void)返回圆周率的值

    字符串

    三种定义的方式

    单引号双引号定界符不支持解析变量支持解析变量,不支持表达式支持解析变量,不支持表达式不能插入单引号不能插入双引号可以插入双引号和单引号只能转义 反斜杠 和 单引号支持解析转义字符(\n、\t、\s等)同双引号

    常用字符串操作函数

    函数功能trim()去除字符串首尾空白等特殊符号或指定字符序列strtolower()转换为小写strtoupper()转换为大写htmlspecialchars()格式化字串中的 html标签strip_tags()函数剥去 HTML、XML 以及 PHP 的标签md5()计算字符串的 MD5 散列值strlen()字节长度 utf8编码 西文:1 字节 汉字:3字节mb_strlen()字符个数substr()字符串截取函数(中文乱码)mb_substr()字符串截取函数(中文不乱码)strstr()查找字符串的首次出现,开始向后截取全部,并返回strpos()、stripos()查找字符串在另一字符串中第一次、最后一次出现的位置 ( 不区分大小写)strrpos()、strripos()同上 ( 区分大小写)str_replace()字符串替换函数str_repeat()重复一个字符串ltrim() 、 trim() 、rtrim()去除左侧 、 两侧 、 右侧多余字符(默认删除空格)explode( 符号 , 字符串 )字符串 → 数组implode( 符号 , 数组 )数组 → 字符串md5()、sha1()字符串加密

    数组

    数组类型

    关联式数组:下标为有意义的字符串

    索引式数组:下标为默认从 0 开始的数值 定义数组

    array() 函数

    二维数组于多维数组 数组的遍历

    //for 遍历索引数组 $arr=[1,2,3,4,5]; for($i=0; $i < count($arr); $i++){ var_dump($arr[$i]); }; //foreach遍历索引数组 $f_arr=["name"=>"zhangsan","age"=>18,"sex"=>"m"]; foreach ($f_arr as $key=>$value) { echo $key.":".$value."<br>"; }; //list (只用于索引数组) list($a,$b,$c,$d) = ["张三","李四","王五","赵六"]; echo $a,$b,$c,$d;

    常用数组函数

    函数功能array_values()数组中所有的值放入一个新的索引数组,并返回array_keys()数组中所有的键放入一个新的索引数组,并返回array_reverse()颠倒数组顺序in_array(元素,数组)检查数组中是否存在某个值count()计算数组中的单元数目 或 对象中的属性个数array_unshift()在数组开头插入一个或多个元素array_push()在数组结尾插入一个或多个元素array_unique()移除数组中重复的值array_pop()删除数组最后一个元素array_shift()删除数组开头的元素array_splice(数组,索引,数量)删除指定元素(删除元素后,会重排数组索引用 unset 删除不会重排数组索引)sort()排序 ( 升序 )rsort()排序(降序)array_merge()合并一个或多个数组

    数组转JSON

    函数说明json_encode( 数组 )JSON 格式编码 (参数必须是 utf-8编码,否则会得到空字符或者 null)json_decode( 字符串,参数 )对 JSON 格式的字符串进行解码,参数:true :返回 数组false : 返回 对象

    运算符

    类型运算符算术运算符+ - * / %赋值运算符= += -= *= /= %= .=比较运算符> >= < <= != !== == ===逻辑运算符&&字符串运算符.其他运算符三元运算符 ==? :错误抑制符@提升优先级符号( )

    流程控制

    流程分支

    // 单一分支结构 if{ } // 双向分支结构 if{ }else{ } // 多向分支结构 // 判断学生成绩在那个分数段 $score = 100; if($score>=90 && $score<=100){ echo "优+"; }else if($score>=80 && $score<=89){ echo "优"; }else if($score>=70 && $score<=79){ echo "良"; }else if($score>=60 && $score<=69){ echo "中"; }else($score>=0 && $score<=59){ echo "差"; } // 多向分支结构 $action = 'submit'; // 分支 switch($action){ case 'submit': echo "请输入手机号码!"; break; case 'reset': echo "数据已经清空"; break; default: echo "请输入信息"; }

    循环结构

    while循环

    While(条件表达式){ // 若条件成立,则执行这里的循环体 // 改变初值的条件 ; }

    do……while 循环

    do{ // 循环体 // 改变初值的条件 ; }while(条件表达式);
    for循环
    // 语法格式 for(初值;范围;递增){ // 循环体 }

    break:在 switch分支当中和循环当中使用,代表结束当前分支或循环

    continue: 在循环当中使用,代表跳过当前层循环,若指定数字,则跳过指定 层循环

    php函数

    系统函数

    define() 定义一个常量defined() 判断常量是否存在die() 输出一条消息,并退出当前脚本eval() 把字符串按照 PHP 代码来运行sleep() 延迟代码执行若干秒
    自定义函数

    函数命名:字母数字下划线,首字母不能为数字, 不会区分大小写 ,且不能使用关键字,函数名不能重复来定义

    函数参数:

    形参: 形式上的参数在函数定义时声明若某个形参的值总是固定的某一个值,可以使用默认值指定具有默认值的形参,放到参数列表后面 实参: 实际上的参数,在函数使用时声明实参和形参类型需一致实参和形参数量要一一对应(定义的参数必须传值,除非有默认值)

    查看实参函数:

    funcgetargs() :返回一个包含函数参数列表的数组funcgetarg(索引) :返回参数数组的某一个funcnumargs() :返回实参的个数

    函数返回值:

    函数当中若遇到 return,则会将 return后方的内容返回到函数调用处进行保存return后面的语句将不再执行若函数没有任何返回,则默认返回 null 类型

    变量作用域

    局部变量:在函数内部定义,只作用于函数内部 默认情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它并不会改变函数外部的值)

    全局变量

    在函数外部定义,作用于当前整个脚本,在函数内部使用需要使用global关键字声明 注意:global 只能用于引入全局变量,子函数引入父函数变量,不能使用 global

    引用变量传参

    使用 global 命令,将全局变量引入到函数内部,但这种方式不够灵活,可以使用引 引 用变量的方法:

    静态变量

    在函数内部定义, 作用于函数内部 ,使用 static关键字声明

    超全局变量

    在全部作用域中始终可用的内置变量 $_GET 通过 URL 参数传递 ( get 请求 ) 给当前脚本的变量的数组 $_POST 通过 ‘post’ 方式给当前脚本的变量的数组 $_COOKIE 保存 Cookies信息的数组 $_SESSION 保存 SESSION 信息的数组 $_FILES 通过 HTTP POST 方式上传到当前脚本的项目的数组 $_ENV 包含服务器端环境变量(版本,目录,用户名等等)的数组 $_SERVER 服务器和执行环境信息 $_REQUEST 默认包含了 _𝐺𝐸𝑈 , _POST 和 $_COOKIE 的数组

    获取 application/json 的 的 post php://input 是一个流,可以读取没有处理过的 POST 数据(即原始数据)

    $postjson = file_get_contents(“php://input”);

    递归 回文数递归 (recursion) 函数

    正则表达式

    正则表达式(regular expression)描述了一种字符串匹配的模式,他是一个特殊的公式,由原子、元字符、模式修正符组成;它也是一个字符串!只不过是一个 特殊的字符串

    正则表达式的主要作用:

    可以用来 检查 一个串是否含有某种子串将匹配的子串做替换或者从某个串中 提取 符合某个条件的子串等主要实现对字符串的 匹配、分割、查找、替换等操作

    正则函数

    用单引号定义正则

    php的正则是以文本方式声明,文本当中用"/ /"包裹正则内容,如果使用双引号, 正则中的“$”会被解析为变量(要加\转义符),因此,用单引号定义正则更安全。

    PCRE 规则与函数

    PCRE(Perl Compatible Regular Expressions )是一个 Perl(一种功能丰富的计算机 程序语言)兼容的正则表达式库,是以 preg开头的一套函数:

    函数功能preg_match(正则 , 字符串 ,结果数组)单一匹配 结果数组: 第一个匹配到的结果返回:匹配数量 (错误:false)pregmatchall(正则 , 字符串 ,结果数组)匹配所有 结果数组: 全部匹配到的结果返回:匹配数量(错误:false)preg_replace(正则 , 替换 , 被替换字符串)替换返回:替换后字符串preg_split( 正则 , 字符串)用正则分割字符串返回:数组

    元字符

    正则模式当中的元字符,通常都具有特殊的含义: 注意: 正则需要转义字符: ( ) { } ? * + . [ ] \ / ^ $ |

    模式修正符号

    符号说明i不区分大小写s忽略换行符U反转匹配模式(贪婪/非贪婪)

    子模式与后向引用

    子模式

    子模式(子表达式 或 子匹配),在正则表达式中,可以使用 ( 和 ) 将模式中的子 字符串括起来,以形成一个子模式。

    后向引用

    正则表达式一个最重要的特性就是将匹配成功的模式的某部分进行存储供以后使用 这一能力。

    对一个正则表达式模式或部分模式两边添加圆括号()可以把这部分表达式存储 到一个临时缓冲区中。 所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容按顺序 存储。存储子匹配的缓冲区编号从 1 开始,连续编号至最大 99个子表达式。每个缓冲区都可以使用’\n’(或用’$n’)访问,其中 n 为 1至 99的阿拉伯数字,用 来按顺序标识特定缓冲区(子表达式)。

    文件处理系统

    路径:

    路径说明/绝对路径:硬盘根目录./相对路径:当前目录…/相对路径:上级目录 文件路径相关函数说明basename()获取路径中的文件名部分dirname()获取路径中的目录部分pathinfo($path,参数)获取路径中的大部分信息,返回数组,参数:PATHINFODIRNAMEPATHINFOBASENAME PATHINFOEXTENSIONPATHINFOFILENAME

    目录操作函数

    函数说明mkdir(完整路径目录)创建一个目录rmdir(完整路径目录)删除一个目录opendir(完整路径目录)打开目录readdir(资源)读取目录closedir(资源)关闭目录,释放内存is_dir(完整路径目录)判断是否为一个有效目录scandir(完整路径目录)扫描目录,返回文件数组 特例: count(数组)==2 是空目录

    文件操作

    文件属性

    函数说明filesize(完整路径文件名)取得一个文件的大小(字节)filectime(完整路径文件名)获取文件的创建时间(create)filemtime(完整路径文件名)获取文件的修改时间(modify)fileatime(完整路径文件名)获取文件的访问时间(access)

    文件操作函数

    函数说明fopen(完整路径文件名 , 参数)打开文件(参数:r只读 w写入 x 创建写入)fread(资源 , 长度)读取文件 长度:字节fwrite(资源 , 内容)写入的内容fclose(资源)关闭文件(资源),释放内存filegetcontents(完整路径文件名)将整个文件读入一个字符串相当于 fopen fread fclose 组合动作fileputcontents(完整路径文件名,要写入的数据,[FILE_APPEND])将字符串写入文件相当于 fopen fwrite fclose组合动作 FILE_APPEND:追加写入readfile()将内容读入内存缓冲区copy(源文件 , 目标文件)拷贝文件(如果目标文件已存在,将会被覆盖)unlink(完整路径文件名)删除文件

    文件判断用函数

    is_file(完整路径文件名): 判断是否为一个有效文件is_readable(完整路径文件名) : 判断是否可读is_writable(完整路径文件名): 判断是否可写is_executable(完整路径文件名) :判断是否可执行file_exists(完整路径文件名) :判断一个 文件或 目录是否存在

    文件上传

    服务端设置 --> php.ini 中进行设置:

    默认 uploadmaxfilesize = 2M,如果你想上传超过 8M 的文件,比如:20M,你在设 定 uploadmaxfilesize = 20M 的同时,还要修改 postmaxsize选项(默认为 8M)。否 则 post 数据超出限制,$_FILES 将会为空(报错)。

    file_uploads = On 是否允许上传文件uploadtmpdir =“G:/wamp/tmp” 临时存储上传文件的目录uploadmaxfilesize = 2M 上传单个文件的大小maxfileuploads = 20 单次上传文件的最大数量postmaxsize = 8M 表单 post 方式上传文件(总和)大小maxexecutiontime = 120 表单上传的超时的时间设置(默认 120秒)

    $_FILES数组: $_FILES 超全局数组中,包含着从客户端提交文件的全部信息

    文件上传错误常见编码

    error编号说明0上传过程中没有发生任何错误1上传的文件超过了 php.ini 中uploadmaxfilesize选项限制的值2超出了 HTML表单隐藏域属性的 MAX_FILE_SIZE元素所指定的最大值(浏览器兼容)3文件只有部分上传4没有上传任何文件5上传文件大小为 0(已废弃)6找不到临时文件夹7文件写入失败

    文件上传函数:

    move_uploaded_file(临时文件名 , 新文件名):将临时文件保存为正式文件 php处理:

    php 图形图像处理–GD库

    GD库是 PHP 中的绘图工具

    作用:绘制饼图、柱形图、折线图、验证码、水印、缩放等 支持:GIF、JPEG、PNG、WBMP 等格式

    GD库图片函数的参数很多,这里常用的函数:

    函数说明imagecreate(宽,高)创建一个 256 色画布imagecreatetruecolor(宽,高)创建一个真彩画布imagecreatefromgif(完整路径文件名)将一张 gif图像放入画布imagecreatefrompng(完整路径文件名)将一张 png图像放入画布imagecreatefromjpeg(完整路径文件名)将一张 jpeg图像放入画布imagecreatefromstring(字符串)从字符串中的图像流新建一图像imagecolorallocate()定义颜色imagecolorallocatealpha()定义带 alpha通道(透明)的颜色imagefill()填充背景imagesetpixel()绘制像素点imageline()绘制线条imagerectangle()、imagefilledrectangle()矩形线框、实心矩形框imagepolygon()、imagefilledpolygon()多边形线框、实心多边形imageellipse()、imagefilledellipse()椭圆线框、实心椭圆imagearc()、imagefilledarc()圆弧、实心圆弧(扇形)imagettftext()绘制文本需引入字库(支持中文字库,输出中文)getimagesize(完整路径文件名)获取图像的宽、高、大小、类型等相关信息成功返回:数组 失败返回:falseimagesx(资源)取得图像宽度imagesy(资源)取得图像高度imagecopy()用于拷贝图像或图像的一部分 成功返回:true ,失败返回:falseimagecopyresampled()用于拷贝部分图像并调整大小(重新采样)imagegif()输出 gif格式图像imagejpeg()输出 jpeg格式图像imagepng()输出 png格式图像imagedestroy()释放资源

    绘制基本几何图形

    最基本的集合图形主要有点、线、圆、多边形等,有了基本几何图形,就可以演变 出更为复杂的图形。GD 库也提供了三个绘制基本图形的函数,imageline()函数、 imagearc()函数、imagerectangle()函数分别用来绘制线段,弧形(包括圆弧),矩 形。

    imageline()函数用来绘制线段

    bool imageline(resource image, int x1, int y1, int x2, int y2, int color)

    该函数参数表示使用 color颜色在图像 image上从坐标(x1,y1)到(x2,y2)画一条线段。在画布里,坐标原点为左上角,横坐标水平向右为正,纵坐标垂直向下为正。

    imagearc()函数用于绘制椭圆弧(包括圆弧)

    bool imagearc(resource image, int cx, int cy, int w, int h, int s, int e, int color)

    该函数参数表示用 color颜色在图像 image上以(cx,cy)为中心,画一个椭圆弧,w和 h 分别是这个椭圆的宽和高,s 和 e都是角度,分别表示圆弧起点角度和圆弧终点角度0度位置在中心的三点钟位置(x 轴正轴方向)。

    imagerectangle()函数用来绘制一个矩形

    bool imagerectangel(resource image, int x1, int y1, int x2, int y2, int color)

    该函数参数表示用 color颜色在图像 image上画一个矩形,左上角坐标为(x1,y1),右下角坐标(x2,y2)。

    图像填充

    imagefill()函数用于图像区域填充

    bool imagefill(resource image, int x, int y, int color)

    该函数表示用 color 在 image图像的坐标(x,y)位置执行区域填充,与(x,y)点颜色相同且相邻的点都会被填充。

    imagefilledarc()函数用于画一椭圆弧并填充

    bool imagefilledarc(resource image, int cx, int cy, int w, int h, int s, int e, int color,int style)

    它的参数说明同 imagearc()函数,与之相比,多了参数 style,它用来表示填充的方式,可选择有如下几种: IMGARCPIE:普通填充,产生圆形边界 IMGARCCHORD:只是用直线连接了起始和结束点与 IMGARCPIE 互斥 IMGARCNOFILL:指明弧或弦只有轮廓,不填充 IMGARCEDGE:指明用直线将起始和结束点与中心点相连

    imagefilledellipse()函数用于画一个椭圆并填充

    bool imagefilledellipse(resource image, int cx, int cy, int width, int height, int color)

    该函数表示用 color 颜色在 image图像上画一个填充的椭圆形,这个椭圆形的中心点在(cx,xy),宽为 windth,高为 height。

    imagefilledrectangle()函数用于画一个矩形并填充

    bool imagefilledrectangle(resource image, int x1, int y1, int x2, int y2, int color)

    参数意义和 imagerectangle()函数一致,与之不同的是 imagefilledrectangle()函数会填充颜色。

    imagefilledpolygon()函数用来画一个多边形并填充

    bool imagefilledpolygon(resource image, array points, int numpoints, int color

    该函数表示用 color 颜色在 image 图像上画一个填充的多边形,多边形的顶点按照顺序存储在 points 数组中, numpoints 表示多变形的边数,num_points 的数值必须大于等于3,且小于等于 points 数组的值个数的一半。

    在图像中添加文字

    imagestring()的主要功能就是在图像中添加函数,它的语法格式 如下:

    bool imagestring(resource image, int font, int x, int y, string string, int color)

    该函数表示用 color颜色在 image图像上的(x,y)位置,使用 font字体绘制字符串string。绘制字符串的时候,是从(x,y)右下方开始绘制。通常情况下 font 使用 1,2,3,4,5等内置字体。

    会话控制 Cookie与Session

    会话控制是一种跟踪用户的通信方式

    cookie

    cookie是在服务器端创建,并写回到客户端浏览器浏览器接到指令则在本地临时文件夹中创建了一个 cookie文件,其中保存了你的cookie内容客户端浏览器每次访问网站时,都会检测是否有该网站的 cookie信息,如果有的话,也会同时发送过去。cookie内容的存储是 键/值 值对的方式, 键和值都只能是字符串。

    设置会话 : setcookie(key,value,有效期)

    session

    客户端第一次访问时将信息保存到服务器,同时分配给用户一个固定长度的字符串 (sessionID),并以 cookie方式保存在客户端

    cookie 与 session 的区别

    区别cookiesession存放位置客户端服务器端安全性不够安全安全资源占用存放在客户端,不占服务器资源占服务器资源生命周期固定时长每次访问,重新计算时长文件大小4k不限制

    php魔术方法

    PHP 中把以两个下划线__开头的函数(方法)称为魔术方法(Magic methods), 这些函数不需要显示的调用,而是由某种特定的条件触发。

    魔术方法功能__construct()类的构造函数,当一个类被实例化的时候自动调用__destruct()类的析构函数,脚本执行结束的时候、销毁对象的时候、重新定义对象的时候__get()读取不可访问或不存在属性时被调用__set()当给不可访问或不存在属性赋值时被调用__isset()当对不可访问属性调用 isset()或 empty()时调用__unset()当对不可访问属性调用 unset()时被调用__sleep()当使用 serialize时被调用(不需要保存大对象的所有数据时很有用)__wakeup()当使用 unserialize时被调用,可用于做些对象的初始化操作__toString()当一个类被转换成字符串时被调用__clone()进行对象 clone时被调用,用来调整对象的克隆行为__invoke()当以函数方式调用对象时被调用_setstate()调用 var_export()导出类时,此静态方法会被调用__call()调用非 public或不存在的方法时被调用__callStatic()调用不可访问或不存在的静态方法时被调用__debugInfo()打印所需调试信息

    指针

    指针指向说明$this实例化对象只能应用于成员方法中可以调用 本类 或从 父类 中继承来的属性和方法避免用$this 引用静态成员属性和类常量(使用 self)self类本身可以访问 本类 或 父类 中的静态属性和静态方法parent父类访问 父类 中的静态属性和方法

    单例模式 单例模式确保某个类只有一个实例


    考点知识回顾: 一. 1+X Web前端中级必考 | PHP 技术与应用 二. 1+X Web前端等级考证 | 详解jQuery基础 三. 1+X Web前端等级考证 | 深入浅出MySQL数据库 四. 1+X Web前端等级考证 | Web中级12月最新模拟题 …


    1+X Web前端等级考证 | 2020 12月Web前端开发中级理论 (试卷2) 附答案 1+X Web前端等级考证 | 2020 12月Web前端开发中级实操 (试卷2) 附答案 1+X Web前端等级考证 | 2020 12月Web前端开发中级实操 (试卷3) 附答案 1+X Web前端等级考证 | 2020 12月Web前端开发中级理论 (试卷3) 附答案 1+X Web前端等级考证 | 2020 12月Web前端开发中级实操 (试卷4) 附答案 1+X Web前端等级考证 | 2020 12月Web前端开发中级理论 (试卷4) 附答案 1+X Web前端等级考证 | 2020 12月Web前端开发中级实操 (试卷5) 附答案 1+X Web前端等级考证 | 2020 12月Web前端开发中级理论 (试卷5) 附答案

    有时间会持续更新关于1+X 方面的~~

    Processed: 0.057, SQL: 8