PHP学习日志-009
php下载
案例这里简单的放个今天早上做的个下载的php。
下载打开php文件,即可实现php文件的跳转下载功能。这里使用的是小皮面板。
<?php// 实现文件的下载// 相对路径下的文件(同文件夹下的某个文件)$file_path = 'photo.zip';// 获取文件名$fname = basename($file_path);// 获取文件的MIME 类型$cont_type = mime_content_type($file_path);// 获取文件的大小$fsize = filesize($file_path);header('Content-type:' . $cont_type);header('Content-Disposition:attachment; filename=' . $fname);header('Content-Length:' . $fsize);// 读取文件内容并且输出到缓冲区readfile($file_path);exit;
秒截的图片如下:
...
PHP学习日志-008
文件和目录
和昨天一样,真正详细的补充在昨天的那片博客里面。
函数详解(部分)fopenfopen($filename,$mode[,$use_include_path[,$zcontext]]);$filename : 要打开的文件名或 URL$mode: 打开文件的模式$use_include_path: 可选参数,规定是否在 include_path 中搜索文件$zcontext: 可选参数,文件句柄的环境设置,为一个资源
附加-mode参数说明只读:只能读取不能修改只写:只能写入不能读取
mode
说明
'r'
只读方式打开,将文件指针指向文件头。
'r+'
读写方式打开,将文件指针指向文件头。
'w'
写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+'
读写方式打开,否则行为同 'w'。
'a'
写入方式打开,将文件指针指向文件末尾。如果文件不存在 ...
PHP学习日志-007
水印,缩放裁剪,文件和目录。
水印补充了一点昨天那些相关函数的部分说明,不过相关补充写入了昨天的日志里,内容分割开的话可能队以后的阅读造成影响,故不单独列出来了。
文字水印<?phpheader('Content-type:image/jpeg');$img = imagecreatefromjpeg('/phpstudy_pro/WWW/51CTO_Study/D01/Verification_Code/images/c01.jpg');$color6 = imagecolorallocate($img, 200, 200, 200);$width = imagesx($img);$height = imagesy($img);// 字体绝对路径(推荐)// 当你相对路径看不到效果时,就使用绝对路径吧$fontfile = "Captcha_module/font/CangJiGaoDeGuoMiaoHei/CangJiGaoDeGuoMiaoHei-CJgaodeguomh-2.ttf";$str_all = &q ...
PHP学习日志-006
时间与日期,图像处理(目前仅做到验证码,明天做水印和缩放裁剪的那部分课)
为了方便学习,提供一个在线PHP网址
时间与日期设置时区默认时区:UTC
date_default_timezone_set('Asia/Shanghai');
获取当前Unix时间戳Unix时间戳从Unix纪元(1970.01.01,00:00:00)开始到当前的秒数。
time();
获取指定时间的Unix时间戳将时分秒月日年转换为Uinx秒数。
mktime(时,分,秒,月,日,年,废弃参数(忽略此参数));mktime(12,30,43,1,30,2023);获取差距时间:(也就是获取未来和当下相距多少秒)$Distance = mktime(未来的时分秒月日年)-time()当然,获取相差多少天可以这样算$Distance/60/60/24 获取min/h/day/month/year(换算)
从Unix时间戳取得时间日期信息将Unix秒数转换为时分秒月日年。(格式化一个时间)
date(string $format[,time]);第一个参数:时间的格式(必选)第二 ...
PHP学习日志-005
正则表达式
正则表达式(PCRE)引入
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
语法规则正则表达式描述了一类字符串的特征。由普通字符和特殊字符组成的字符串.
'/a/'// 正则表达式'/a/'// 定界符:/// 普通字符:a// 元字符(上面式子没有): * + ? 等
定界符// 习惯性使用的是正斜线 /// 还有下面的也是可以的,不过前后必须一致#,!,{},|// 除了字母数字反斜线,其他的都可以作为定界符。
普通字符普通字符没有特殊意义
a-z A-Z 0-9 "" ''等,不用转义字符转义。
元字符
字符
描述
\
转义字符,使符号正常输出或者使用特殊字符
^
匹配输入字符串的 开始位置 。如果是出现'\n'的话,每一个'\n'产生的新的一行都算是 新的一行 ,匹配时都每个'\ ...
PHP学习日志-004
字符串
字符串去除空白或其他字符函数(trim,ltrim,rtrim)// 不会改变原始字符串// 去除首尾空白字符串trim($str[,$charlist]);// 第二个关键字不指定时:去除下面的字符串" " :普通空格符"\t" :制表符"\n" :换行符"\r" :回车符"\0" :空字节符"\x0B" :垂直制表符// 例如:echo trim(" hello,world ") // =>输出hello,world,左右没有空格 // 指定第二个参数,它的含义就变化为:去除字符串的前后指定字符串echo trim("hello,world","h") // =>输出ello,world,相当于去除首尾的"h" // 同时去除首位的多个字符串echo trim("34ssddfcs", "3s& ...
PHP学习日志-003
函数,数组
函数自定义函数// 定义函数function 函数名([形参列表]) { 函数体; return 表达式; //可以写可以不写,看实际需要}// 调用函数(可以直接使用函数)$a = 函数名(实际参数);// 函数参数(可以传,也可以不传,看实际需要)// 假设有变量$a=10$a=10;// 按值传参:不会修改到外部$a的值function stuPHP1($a) { echo ++$a;}// 按引用传参: (个人理解 -> 传地址)function stuPHP2(&$a) { echo ++$a;}// 默认参数: // 调用时不传入参数,就使用默认的参数值// 添加的默认参数必须从右往左加function stuPHP3($a=300) { echo ++$a;}// 可变长度参数列表// PHP提供的,可以直接使用func_get_args(); // 将传入的参数转换为一个列表func_get_arg(下标); // 将传入的参 ...
SEC-2022版-0000-http/https
http/URL/URI/URNhttp连接流程/概念连接流程:
客户端通过三次握手与服务器建立连接
TCP建立连接后, 向服务器发送http请求
服务器收到http请求后, 向客户端发送http响应
客户端通过tcp四次挥手, 与服务器断开tcp连接
可靠的链接交换信息
无状态的请求/响应协议
无状态协议阐释:
HTTP(超文本传输协议)是一种无状态的请求/响应协议,这意味着服务器不会维护客户端请求的任何状态信息。每个 HTTP 请求都被视为独立的请求,因此在处理一个新请求时,服务器不会考虑前面的请求或上下文。
拓展:两个架构
C/S 客户端-服务器 HTTP TCP/IP FTP
B/S 浏览器-服务器 HTTP HTML AJAX
http9.0/http1.0 每次连线请求/回应正确后关闭(完成一次关一次)
http1.1 保持连线,一个连接可以多个请求/回应 => 节约握手时间
URL-统一资源定位符http:// user:pass @ www.example.jp: 80 /dir/ ...
PHP学习日志-002-基础
流程控制语句
顺序执行自上而下,没有控制。
分支执行if语句// 单分支if(条件){ // 条件成立就执行大括号的内容 执行语句;}// 双分支if(条件){ 执行语句} else { // 条件不成立就执行这个大括号的内容 执行语句;}// 多分支语句if(条件1){ 模块1;} else if(条件2){ 模块2;} else if(条件3){ 模块3; ...} else if(条件n){ 模块n;} else { 模块last;}// 多分支的部分带入单分支和双分支即可,不过多解释了
switch语句switch(表达式) { case 值1: // 是否等于值1 语句块1; break; case 值2: 语句块2; break; case 值3: ...
PHP学习日志-001-基础
php官网文档
数据类型与运算符
数据类型概述
返回变量的数据类型
简述命名规则 :很多命名规则都是 字母数字下划线 ,还有驼峰命名法的,大体上就这些。命名规则其他编程语言也适用。
var_dump();
数据类型
类型
释义
补充
bool
布尔类型
true/false[ 0,0.0,'','0',array(),null ](方括号内表示false的情况,其他情况都是true)
int
整形
-
float
浮点型
带小数 -
string
字符串
单引号 : 简单字符串效率高,且字符串出现变量时不会生效。 双引号 : 可以解析引号内的变量,最好使用{}框住变量 定界符 : 形如<<<标识符内容标识符 标识符内的内容可以写任何内容,可以包裹特殊符号,但和双引号一样,变量需要{}囊括起来
array
数组
array(“name”=>”Tom”,”sex”=>”man”)打印数组:print_r一般是下标访问数组:$c[下标]下上面的”name”就是一个下标,且不等于n ...