52、session入库
php部分
1、 虚拟主机的配置方式有几种?
可以在一台物理服务器上运行/维护多个站点,用户通过不同的IP或域名来进行访问站点
虚拟主机的配置一共有两种方式来进行配置:
基于ip地址的配置(多个网卡来实现)
基于主机名的虚拟主机来进行配置(多个域名来映射到一个IP上)
2、PHP脚本的生命周期?
3、PHP变量的直接传值和引用传值
直接传值:拷贝传值 $a = $b
引用传值:快捷方式 &$a = $b
拓展:
写实复制:在值传递或者是引用传递的时候,当系统中两个变量的值相同的时候,系统为了节省内存空间,不会再开辟一个新的内存来保存两份相同的地址,直到其中一个变量发生改变的时候,这时系统就会开辟一个新的内存来保存此变量,就称之为写实复制
4、php变量的定义
以字母下划线数字组成,但不能以数字进行开头,区分大小写
5、print_r()、var_dump() 和echo 的区别
Echo: 可以一次输出多个值,多个值之间用逗号分隔echo是语言结构(language construct),而并不是真正的函数;
Print_r: 可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示
Var_dump:可以使用任何变量,包括字符串,数组,数字,对象,还指明变量的类型及长度。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构
6、删除变量 unset();
7、常量
一旦定义将不能再被修改,通常大写用来区分变量
定义:Define(‘PI’,’3.14’) 访问define(‘PI’)
定义:Const PI = 3.14 访问constent(‘PI’)
Defined() 查看某个常量是否存在
8、系统的预定义变量
a) $_POST
b) $_GET
c) $_REQUEST
d) $_SERVER
e) $_SESSION
f) $_COOKIE
g) $GLOBALS // 专门用来存储全局中所用的变量
h) $_FILES[‘filename’] // /
9、系统常量
a) PHP_OS 查看服务器的运行环境
b) PHP_VERSION 查看php的版本信息
c) PHP_INT_SIZE 查看php中基本的存储单位1bety=8bits 255中状态
d) PHP_INT_MAX 查看php中最大的整型数
e) __FIFE__ 当前文件的绝对路径(包含文件名)
f) __LINE__ 获取当前的行号
g) __DIR__ 当前文件的绝对路径(不包含文件名)
h) __FUNCTION__获取函数名
10、PHP的数据类型
1)标量数据类型:
整型: 4个字节存储的值,当超过最大的整型后会自动转换为浮点型
浮点型:float:单精度 精度为7位左右 值为10^32
Double:双精度 精度为15位左右 值为10^308
可以使用E à 1.8E10科学计数法
布尔型
字符串型
2)复合数据类型:数组、对象
定界符 $str=
// 内容
DELIMIT(需顶格书写)
3)特殊数据类型:Null resource
11、单引号和双引号的区别
在php中单引号不能解析变量,双引号可以(变量后若有字符用{}进行分隔即可)
在JS中单双引号都不能解析变量
单引号: 只能转译单引号和反斜杠
双引号: 除了单引号其他都能转译
12、运算符
算数、比较、赋值、链接、错误抑制、自操作、三目、
逻辑 && || ! (通常将与&&的false和将或||的true放在前边,效率高)
位运算
&:按位与,同为1则为1
| :按位或,有1则为1
~:按位取反,0变为1,1变为0
^:按位抑或,相同则为0,不同则为1
>>: 右移
13、程序代码的执行结构
顺序结构
分支结构:if 和 switch 结构
循环结构: for foreach(JS for…in…) while do..while
14、循环控制
Continue:结束本次循环,继续执行下次循环,后边也可带参数跳出几层循环
Break:结束当前的循环体,继续执行循环体下边的内容,break后边可以带参数跳出几层循环
15、标签语法
If for foreach while
① : ?>
②
16、php的编译过程
①加载源代码à编译à词法分析(parse error)à语法分析(parse error)à生成opcodeà执行opcode (fatal error)à html代码
17、函数
# 回调函数:在函数的内部使用可变变量来实现外部函数的调用,处理传递进来的参数
# 函数名不区分大小写
函数的作用域:全局和局部以函数为界限
局部访问全局: 引用传值,$GLOBALS(超全局预定义变量),global关键字
全局访问局部:global关键字,return返回值
$GLOBAL超全局预定义变量,可以在任何地方使用变量,且可以改变变量的值
Global关键字只能在函数中引入变量,并不能对其赋值,实质上就是在函数的内部创建了一个局部变量,使内存地址指向外部变量的地址,如果外部没有该变量则自己创建一个
18、静态变量
初始化一次(编译保存在代码段),通常与递归进行搭配
19、伪类型
Number Mixed callback void
20、数据类型的转换
False 0 0.0 ‘’ null array() object à 均为false
(int) (bool) (float) (string) (array) (object)
21、数据类型的判断
is_bool: 判断数据类型是否是布尔类型
is_float: 判断数据是否是浮点型
is_integer: 整型判断
is_object: 对象判断
is_array: 数组判断
is_string: 字符串判断
is_resource: 资源判断
is_scalar: 标量判断: 整型,浮点型,布尔型和字符串型都可以判断
is_null: 是否为空
is_numeric: 数值型判断(纯数值型字符串)
Gettype: 获得一个数据的数据类型:返回的字符串描述
Settype: 修改数据的数据类型(修改数据本身: 永久性)
22、empty与undefined的区别
Empty 检查变量是否为空
换句话说,””、0、”0″、NULL、FALSE、array()、var $var、未定义;以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE
Isset 检查变量是否设置
如果变量存在(非NULL)则返回 TRUE
拓展:
Null 即是一个不存在的对象的占位符
Undefined 变量已经被声明,但没用赋值
NaN 不是一个数字
23、文件包含
意义:页面布局,代码复用
向上包含:通常是为了使用其他脚本中的结构(类和函数)
向下包含:通常是为了为了当前脚本的数据在对应的HTML中进行显示
include和require的区别:在包含文件的时候处理错误的态度不一样
include只是尝试包含,给出警告,后续的代码还是会继续执行
require 是强制包含,给出致命错误,后续的代码不会继续执行
include_once只包含一次,而include执行一次包含一次
require_once 同上
24、文件路径
磁盘的绝对路径:D:/server/apache (仅限在服务器端使用,不能写入到HTML中)
网络的绝对路径:http://localhost/ (可以用于任何地方,从站点的根目录开始寻找)
./ 当前目录
../ 上层目录
/ 网站的根目录
绝对路径更加准确(__DIR__),相对路径效率高但可能出错
25、数组
1)数组的三种定义方式:
$arr = array();
$arr = [];
$arr = null; $arr[] = 1;
2) 数组的分类:
索引数组、关联数组、混合数组 (都是通过下标来进行区分)
3)count($arr)函数: 查询出数组中的所有元素
4)数组的遍历
for():只能遍历索引数组
foreach():可以遍历所有的数组,利用了数组内部的数组指针
5)Each():通过数组的指针获取数组元素的函数,能够将当前数组指针所指向的元素的下标和值都可以获取到(数组的指针刚开始处于下标为0处),以关联和索引的形式个返回一组数据,是一个具有四个元素的数组(1和value保存值;0和key保存键名)
each()是指针的操作,当访问一次数组后,数组的指针将会下移一位;当指针移出数组后将返回false,each()可以来证明当前数组的指针处于什么地方
6)List():List 函数可以批量的为变量进行赋值
List(变量列表) = 数组; 通常list是搭配each针对数组进行遍历
7)数组相关函数
key: 获取当前数组指针指向的键名
Current:获取当前数组指针指向的键值
Next: 获取当前指针的下一个元素的值,并且将指针移动到下一位数组元素
Prev: 获取当前指针的上一个元素的值,并且将指针移动到上一位数组元素
end: 获取数组的最后一个元素,并将指针移动到最后一个元素
reset:重置,将数组指针移动到第一个元素
next或者prev无法将一个已经移除数组的指针移回来
end和reset 可以将指针移回来
array_keys:获取数组的所有的下标(键名),返回索引数组
array_values:获取数组的所有的值,返回索引数组
26、数据结构模拟
数据结构:数据的存储方式
常见的数据结构:栈(先进后出) 队列(先进先出)
Array_push 向数组的后边加入一个元素
array_pop 从数组的后边弹出一个元素
array_shift 从数组的前面弹出一个元素
array_unshift 从数组的前面加入一个元素
27、数组字符串的转换
explode(‘,’,$str) 将一个字符串按照一定的方式爆炸为数组
implode(‘-’,$arr) 将数组按照一定的方式编织为字符串
28、数组的和运算
1)+ 加运算:不区分索引和关联
运算方式:保留第一个数组中的所有的元素,去寻找第二个数组中的元素,如果存在相同的下标则不管,如果不存在则添加进来
2)array_merge():首先尝试保留第一个数组中所有的元素,去寻找第二个数组中相同的下标(索引)如果存在则后边的覆盖前边的,如果不存在则保留第一个,如果后边还有索引下标对应的元素,直接添加到第一个数组的后边,索引重置
29、数组验证码
1)利用range函数得到指定范围内的一个随机数range(0,9),range(a,z),range(A,Z)
2)合并数组array_range()
3) 通过array_rand($array,$num)函数获取随机下标
4)利用shuffle()打乱下标
5)通过遍历下标从合并的数组中得到验证码
29、系统函数
字符串函数:
1)Strlen($str):获取字符串的长度
2)Substr($str,起始点,终止点)获取指定范围内的字符串,没有指定终点则到最后
3)Strtolower($str):将所有的字符串小写
4)Strtoupper($str):将所有的字符串大写
5)Strrev($str):reverse 将字符串进行反转
6)Strpos:获取指定字符的位置
7)Strrpos:从右边开始获取字符串的位置
8)Strchr($str,’|’)从匹配的地方截取字符串到最后(从左到右)
9)Strrchr($str,’.’) 从匹配的地方截取字符串(从后向前)
10) Trim() 消除字符串两边的空格或者是指定的字符
11)str_repeat:重复的输出某个指定的字符串
时间日期函数
1) time():获取当前时间的时间戳
2)Date():时间戳转日期
Date(‘Y-m-d H:i:s’) 获取当前的日期
Date(‘Y-m-d H:i:s’,time()) 同上
Strtotime():将字符串转换成时间戳
Microtime(): 获取微秒数
数学相关的函数
Abs:获取绝对值
Floor:向下取整
Ceil:向上取整
Round:四舍五入
Rand:取得一个指定区间内的随机数
mt_rand:取得一个指定区间内的随机数
30、浏览器的传值
1)浏览器的传值方式有两种:get和post即url和表单传值两种方式
2)URL的组成:http://(http协议)+localhost:80(主机)+URI(统一资源定位)
3) 表单的传值都是通过name属性名来加以区分,一旦出现同名将会被覆盖
4)$_REQUERST:不安全,会通过array_merge()函数来合并post和get数据,如果出现同名函数将会被覆盖:php.ini中request_order选项代表覆盖的顺序
31、文件上传
文件的上传分为两个部分:客户端的上传和服务器的接收
1)服务器端必须接收文件:开启php.ini中文件的上传file_uploads = on
2)修改文件上传的临时文件存放目录:upload_tmp_dir =
3)对于大文件需要用post进行传递,故提交方式为post
4) 使用表单域进行传递
此处的name值通过$_FILE[‘upfile’]来进行接收
5) 通过get和post默认提交的数据为字符串类型,文件上传时属于二进制的形式故要使用post来帮助提交二进制数据,那么要指定提交数据类型为二进制

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.
