php时间 cookie session 文件上传基础

news2025/4/22 3:34:23

时间和日期

PHP Date() 函数

格式//

date(format,timestamp)

format

Required. Specifies the format of the timestamp

timestamp

Optional. Specifies a timestamp. Default is the current date and time

  • d - 表示每月的某一天(01 到 31)
  • m - 代表一个月(01 到 12)
  • Y - 表示一年(四位数字)
  • l(小写字母 'L') - 表示星期几

echo “today is ”. date(“y-m-d”) . “<br>”;

php-版权年份

&copy; 2010-<?php echo date(“y”);?>

获取时间

H-24小时制的(00-23);

h-12小时制 ,带前导零(01-12);

i-带前导零的分钟(00-59);

s-带前导零的秒(00-59);

a-Ante meridiem(午前) Post meridiem(午后)(am pm

echo “this is ”. date(“h:i:sa”);

获取时区

默认定义

Date_default_timezone_set(Asia/Shanghai);

使用mktime创建日期

Date()用于创建时间戳,如果不创建默认可以使用系统格式

mktime(hour, minute, second, month, day, year)

$d=mktime(1114548122014);

echo "Created date is " . date("Y-m-d h:i:sa", $d);

时间的格式转化

strtotime(time, now)

$d=strtotime("10:30pm April 15 2014");
echo "Created date is " . date("Y-m-d h:i:sa", $d);

Strtotime()

将人类可读的函数转化为时间戳

$d=strtotime(“tomorrow”);

Echo date(“y-m-d h:i:sa”,$d)

$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";

$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
?>

通过循环打印每个周末的日期

$startdate=strtotime(“Saturday”);

$enddate=strtotim(“+6 week”,$startdate);

While($startdate<enddate){
ehco date(“m-d” ,$startdate);

$startdate=strtotime(“+1 week” ,$startdate);

}

php包含文件

PHP include 和 require 语句

Require翻译为需要,意味着告诉编译器这个时关键的,运行时时是不可或缺的文件,所以当发生错误时,将会产生致命的错误

如果您希望执行继续进行并向用户显示输出,即使 包含文件丢失时,请使用 include 

则,如果是 FrameWorkCMS 复杂的PHP应用程序编码,始终使用require语句将密钥文件包含在其中 执行流程。这将有助于避免危及应用程序的安全性 和完整性

Include表示包含这个文件,可有,也可以无,所以在发生错误时,仅仅是产生警告,程序照常运行,

1.<html>
<body>
<h1>Welcome to my home page!</h1>
<p>Some text.</p>
<p>Some more text.</p>
<?php include 'footer.php';?>
</body>
</html>

2. <html>
<body>

<div class="menu">
<?php include 'menu.php';?>
</div>

<h1>Welcome to my home page!</h1>
<p>Some text.</p>
<p>Some more text.</p>

</body>
</html>

创建,读取,上传,编辑文件的函数

  1. readfile()函数  //仅仅打开读取内容

(1.)创建一个date.txt的文本文件

(2.)将文件写入输出缓冲区

echo      readfile(“date.txt”);

2.fopen打开文件

$myfile=fopen(“date.txt”, “r”) or die(“unable to open file!”);

//打开这个文件

echo fread($myfile, filesize(“date.txt”)); 读取这个文件

fclose($myfile);  关闭文件占用服务器资源

filesize()函数

filesize() 函数是一个在 PHP 中用于获取文件大小的函数。它接受一个文件名作为参数,并返回该文件的实际大小(以字节为单位)。如果指定的文件不存在,则 filesize() 返回 false

Fread() 读取文件

第一个参数包含要从中读取的文件的名称和 第二个参数指定要读取的最大字节数。fread()

以下 PHP 代码将“date.txt”文件读取到最后

echo fread($myfile, filesize(“date.txt”));

fclose关闭文件

在完成所有文件后关闭它们是一个很好的编程做法。 你不希望一个打开的文件在你的 服务器占用资源!

Fgets()读取单行

$myfile=fopen(“date.txt”,”r ”) or die(“ unable to open file!”);

Echo fgets($myfile);

输出//AJAX = Asynchronous JavaScript and XML

Fclose($myfile);

Feof()

该函数检查是否已达到文件结束EOF)。feof()

该函数对于遍历未知长度的数据非常有用。feof()

$myfile=fopen(“date.txt”)or die(“unable open file!”);

While(!feof($myfile)){

   Echo fget($myfile); //一行一行的遍历文本

}

Fgetc()读取单个字符

$myfile = fopen("webdictionary.txt""r"or die("Unable to open file!");
// Output one character until end-of-file
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);// 读取单个字符直到文件结束

文件的创建以及写入

Fwrite()写入文件

第一个参数包含要写入的文件的名称和 第二个参数是要写入的字符串。fwrite()

$myfile = fopen("newfile.txt""w"or die("Unable to open file!");
$txt = "John Doe\n";
fwrite($myfile, $txt);
$txt = "Jane Doe\n";
fwrite($myfile, $txt);
fclose($myfile);

覆盖

Newdate中包含了一些文件,当我们打开文件写入时,所有的文件都会被擦除
附加

您可以使用“a”模式将数据追加到文件中。“a”模式附加 文本添加到文件末尾,而“W”模式将覆盖(并擦除)旧的 文件的内容

文件上传

  1. 创建html表单

<form action=”upload.php ” method=”post ”enctype=”multipart/form-data ”>  将提交位置位于upload.php中,enctype 属性设为 "multipart/form-data" 这是为了告诉浏览器,这个表单包含不可分割的二进制数据,比如图片文件。这对于上传文件是必要的,因为文本编码方式无法正确地处理二进制数据。

Select image to upload:

<input type=”file ”name=”fileuptoload ”id=”filetoupload “>

<input type=”file ” name=”filetoupload ”id=”filetoupload ”>

<input type=”submit ”value=”upload image ” name=”submit ”>

</form>

//method 属性设为 "post" 表示我们通过POST方法发送表单数据。这通常用于在服务器上创建或更新资源,并且它可以包含大量数据而不受URL长度限制。

函数讲解

Multipart/form-data

multipart/form-data 是一种 MIME 类型,常用于在 HTTP 请求中传递表单数据和文件。这种方法特别适合处理包括文件上传在内的复杂表单提交过程。它允许在一个请求中同时发送多个不同类型的数据,如文本、JSON 或文件等。下面是一些关于 multipart/form-data 的关键特性及使用场景

数据分块

multipart/form-data 将数据分为多个部分(chunks),每一部分都有特定的内容类型和内容描述,使得浏览器和服务器能够区分不同类型的数据,例如文本、二进制文件或 JSON 对象

文件上传

文件上传是 multipart/form-data 最典型的应用之一。文件以单独的一行数据发送,其 Content-Disposition 部分包含 attachment 或 file 类型,以及文件名和其他元数据。

基本的php上脚本

$target_dir=”uploads/”;

$targrt_file=$target_dir .basename($_FILES[“filetoupload”][“name”]);

$upload=1; //通过basname函数获得文件的原始名称 files全局变量获得路径,通过basename函数解析路径下的最终文件名

$imagefiletype=strtlower(pathinfo($target_file,PATHINFO_EXTENSION));

//将文件名统一

If(isset($_POST[“submit])){ //判断是否有文件提交

$check=getimagesize($FILES_[“filetoupload “][“tmp_name”]);

If($check!==false){ //通过getimagesize函数返回文件的类型

       Echo “file is an image-”. $check[“mine”] . “.”;

       $uploadok=1;

}else{

Echo “file is not image.”;

              $uploadok=0;}

}

函数讲解

1 $_FILESb数组

$_FILES 是 PHP 中的一个超全局数组,用于获取上传文件的信息。当用户通过表单向服务器发送文件时,PHP 可以通过这个数组访问到有关文件上传的各种信息,包括但不限于文件名、临时文件路径、文件大小、MIME 类型等。

$_FILES = array(

    'field_name' => array(

        'name' => 'filename.ext',   //文件的原始名。以及拓展名

        'type' => 'mimetype',    //文件的MIME类型

        'size' => filesize_in_bytes, //文件的大小

        'tmp_name' => temp_file_path_on_server, 临时文件在服务器的放置

        'error' => error_code 错误码

    ),

);

Basename()

basename() 主要用于在给定的文件路径中提取出文件名。如果路径中包含目录部分,则仅保留最后的那个目录下的文件名;如果没有目录部分,即直接是一个文件名,那么将返回整个路径。

Pathinfo()

       pathinfo() 函数在PHP中用于分解一个文件路径,并将其分解成各个组成部分,例如目录、文件名、扩展名等。此函数返回一系列数组元素,每个元素代表路径的一部分。

isset() 函数

作用是用来检查给定的变量是否设置并且不是空(NULL 或者 “” 等)。当你想要在处理表单提交数据的时候检查某些特定变量是否存在时,通常会使用到 isset() 函数。

Getimages()

用于获取图像的大小以及其相关信息,在处理图像文件(如 JPEG、GIF、PNG 等)时,因为它能够返回图像的尺寸(宽度和高度)以及图像的类型(MIME 类型)。这对于在将图像文件显示到网页上之前,预先了解图像的尺寸和类型非常有帮助。

1,限制文件大小

  1. 限制文件类型
  2. $target_dir = "uploads/";
    $target_file = $target_dir . basename(
    $_FILES["fileToUpload"]["name"]);//通过basename函数剥去文件的路径,得到最终的原始文件名
    $uploadOk = 1;
    $imageFileType= strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); //
    统一文件名

    // 检查这个图像是实际图像还是虚假图像
    if(isset($_POST["submit"])) {
      $check = getimagesize(
    $_FILES["fileToUpload"]["tmp_name"]);//检查文件大小

//得到这个文件的后缀
  if($check !== false) {
    
echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 
1;
  } 
else {
    
echo "File is not an image.";
    $uploadOk = 
0;
  }
}


// 检查是否存在
if (file_exists($target_file)) {
  
echo "Sorry, file already exists.";
  $uploadOk = 
0;
}


// 检查文件的大小
if ($_FILES["fileToUpload"]["size"] > 500000) {
  
echo "Sorry, your file is too large.";
  $uploadOk = 
0;
}


// 允许创建的文件格式
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 
0;
}


// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
  
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
else {
  
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {//将文件放入临时文件名检查,是否仅为一个空名字
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
  } 
else {
    
echo "Sorry, there was an error uploading your file.";
  }
}

?>

在php上传代码的搭建过程中,首先是思路

1.获取image的初始名称   //basename()函数 解析路径,获得文件的初始名

2.将image文件初始名统一 //通过pathinfo($target_filr,PATHINFO_EXTENSION))得到后缀名并小写话,pathinfo用于分解目标文件,后缀名,文件名等,作为参数$target_file

3..检查图片是否为真实文件,

4.防止跨脚本攻击,将文件名中的html特殊字符进行转译,确保文本的完整性,防止意外改变html的标签属性

总结

Phpcookie

Cookie通常用于网站的会话管理、用户偏好设置和个人化体验。以下是Cookie的一些常见应用场景:

  1. 会话保持:服务器通过Cookie存储用户的唯一标识符,当用户在网站上浏览不同页面时,可以识别并保持登录状态。
  2. 购物车功能:网站可以在用户添加商品到购物车时,通过Cookie保存所选商品信息,直到用户完成购买操作。
  3. 个性化设置:如语言选择、主题切换,用户的选择会被存储在Cookie中,下次访问时自动应用。
  4. 广告追踪:某些网站使用Cookie记录用户的行为数据,以便提供更精准的定向广告。
  5. 网站统计:网站运营者利用Cookie收集匿名用户数据,分析网站流量和用户行为。
  6. 跨域资源共享(Cross-Origin Resource Sharing, CORS):在一些特定场景下,Cookie允许跨域通信,用于服务端验证身份等。

然而,随着隐私法规的加强,特别是对于跟踪Cookie的限制,现代浏览器越来越倾向于限制或清除它们,以保护用户隐私。

1.查找cookie值

$cookie_name=’user ’;

$cookie_value=’hello world’;

Setcookie($cookie_name,$cookie_value,time()+(86400*30),”/”)//86400为一天

?>

<?php

If(!isset($_COOKIE[$cookie_name])){

       Echo “cookie:’” .$cookie_name. “ ’is not set”;

       }else{

Echo “cookie ‘ ”.$cookie_name. “ ’is set <br>”;

?>

Php session_start()

“记忆储物柜”当你在持续的web购物时,你不希望你每到一个页面就需要重新输入账号密码,这是因为http只负责建立连接,不负责维护状态,so 服务器会为你创建一个唯一id(通行证吧),在你这次截止到未关闭浏览器前,你都可以畅通无阻的浏览你喜欢的商品,这个id会被发送到cookie中,总之,session维护了你的基本信息,储存在cookie里,在你的为退出或者清除浏览器缓存前,帮你随时维持你的个人信息,在http服务中

启动session服务  全局变量 session_start()

建立一个session来源脚本

<?php

Session_start();

?>

< <!DOCTYPE html>
<html>
<body>

<?php

$_SESSION[“myfrends”]=”php”;

$_SESSION[“color”]=”blue”;

Echo “session are set”;

?>

</body>

</html>

让我们来到另一个脚本,查看全局session

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["myfrends"] . ".<br>";
echo "Favorite animal is " . $_SESSION["color"] . ".";
?>

</body>

</html>

Session_start()//设置全局变量 session——unset()//清空会话变量

Session_destory()//销毁所有会话

当然你很好奇session是如何跨脚本的呢,当我们写入的session之后,session会话数据会被保存到服务器(或是本地)(或是云端),除非手动删除或者关闭,否则会一直存在

session_register('username') ;

session_write_close();

若省略,默认也是保存, 后续的页面请求中,只要再次调用session_start(),就能获取和更新之前设置过的Session变量,因为它们是由服务器管理的,不受脚本执行顺序的影响

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1969325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

反序列化漏洞靶机实战-serial

一.安装靶机 下载地址为https://download.vulnhub.com/serial/serial.zip&#xff0c;安装好后开启靶机&#xff0c;这里并不需要我们去登录&#xff0c;直接扫描虚拟机nat模式下c网段的ip&#xff0c;看看哪个的80端口开放&#xff0c;然后直接去访问 二.查找cookie 访问靶…

Java Try学习

一. 介绍 io.vavr.control.Try 是 Vavr 库的一个类&#xff0c;用于处理可能抛出异常的方法调用&#xff1b;它提供了一种优雅的方式来处理成功和失败的情况&#xff0c;而无需显示地使用 try-catch 块&#xff1b; 简而言之&#xff0c;它可以优雅的实现 try-catch&#xff…

链表【4】

目录 链表删除指定值元素 反转链表&#xff08;静态链表型&#xff09; 链表删除指定值元素 错误1&#xff1a;两个if间没有用else&#xff0c;导致两个都执行了 #include<stdio.h> const int N1005; int n,first,firstid; using namespace std; struct node {int da…

【Vue3】作用域插槽

【Vue3】作用域插槽 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本文…

UI界面自动化测试-Selenium

Selenium工作原理 SeleniumAPI 定位元素 Selenium操作对象 **send_keys 在对象上模拟按键输入 ** clear 清除对象输入的文本内容 ** click 点击对象(无限制) submit 提交(用于form表单) ** getText() 用于获取元素的文本信息 getAttribute() 用于获取属性的值 quit 关闭…

【奥顺苹果CMS二开泛目录4.X版】PHP站群程序新增首页堆砌关键词新增四套seo模板

演示站&#xff08;赠送四套模板&#xff09;&#xff1a; https://macfan.qdwantong.com https://macfan2.qdwantong.com https://macfan3.qdwantong.com https://macfan4.qdwantong.com 4.X版程序特色功能&#xff1a; 后台除了可以设置干扰码、转码、插入符号和拼音这…

[Bugku] web-CTF-矛盾

1.开启环境 2.根据内容得知&#xff0c;get一个num&#xff0c;若num不是数字&#xff0c;出一次num的值&#xff0c;后若num1出flag&#xff1b;若num为数字则不进行任何操作所以要输出flag&#xff0c;首先要num不是数字&#xff0c;然后又要num1这显然是矛盾的&#xff0c;对…

transform详解

参考&#xff1a;https://zhuanlan.zhihu.com/p/690055241 https://zhuanlan.zhihu.com/p/685724799 https://zhuanlan.zhihu.com/p/609523552 cnn是通过卷积核的方式实现权重偏置的计算&#xff0c;ywkb&#xff0c;激活&#xff0c;前馈神经网络&#xff0c;反向传播。 trans…

P31结构体初阶

结构体的声明 结构体的基础知识 结构是一些值的集合&#xff0c;这些值成为成员变量。结构的每个成员可以是不同类型的变量。 结构体的声明 结构成员的类型 结构的成员可以是标量、数组、指针&#xff0c;甚至是其他结构体 结构体变量的定义和初始化 结构体成员的访问 结构…

AI技能提升学习-免费24年最新甲骨文(OCI)开卷AI证书(有答案)+代码调用OCI生成式AI服务教程

之前好多小伙伴和我反馈错过了24年甲骨文的AI专家级证书免费考试&#xff0c;这次小李哥就给大家带来了24年最新的OCI另外一门AI基础级考试&#xff0c;主要目的是帮助大家提升AI/ML的基础知识和技能&#xff0c;给大家带来免费的学习福利&#xff0c;赶紧关注小李哥不要再错过…

大数据技术原理-spark编程与应用

摘要 本实验总结了在"大数据技术原理"课程中进行的Spark编程实验。实验环境基于Apache Spark&#xff0c;旨在通过实践加深对Spark数据处理能力的理解。实验的主要内容包括开启Spark shell、导入必要的包、读入数据集、数据预处理、聚类模型训练、确定数据模型的中心…

STM32内部Flash存贮数据的应用(STM32F446)

目录 概述 1 STM32内部Flash介绍 1.1 MCU简介 1.2 存储空间 1.3 主要特性 1.4 嵌入式闪存 2 库函数介绍 2.1 编程接口函数 2.2 锁和解锁函数 3 功能实现 3.1 写数据函数&#xff1a;FlashDrv_Write 3.2 读数据函数&#xff1a; FlashDrv_read 3.3 源代码 4 测试…

carla unreal engine源码:如何自定义开发传感器

文章目录 前言一、目标二、代码内容三、工程搭建1、更改点总览2、工程修改1&#xff09;代码文件拷贝至目标路径2&#xff09;SafeDistanceSensor.cpp 修改3&#xff09;SafeDistanceSerializer.h 修改4&#xff09;SafeDistanceEvent.h 修改5&#xff09;Sensor.h 修改6&#…

大数据技术原理-NoSQL数据库的应用

摘要 本实验报告聚焦于"大数据技术原理"课程中的NoSQL数据库实验。实验环境包括MySQL、Redis、MongoDB、Java以及Hadoop。实验内容涉及Redis和MongoDB的安装、配置和基本操作&#xff0c;包括数据的插入、删除和查询。此外&#xff0c;实验还包括使用Java API对Mong…

【统计全为 1 的正方形子矩阵】python刷题记录

R3-分治篇 class Solution:def countSquares(self, matrix: List[List[int]]) -> int:rowlen(matrix)collen(matrix[0])dp[[0]*(col1) for _ in range(row1)]ret0for i in range(row):for j in range(col):if matrix[i][j]1:dp[i1][j1]min(dp[i][j1],dp[i1][j],dp[i][j])1re…

umi-request全局响应拦截器

文章目录 介绍思路实现方法1.直接修改 umi-request方法2.自定义 request 实例&#xff0c;通过 umi-request 库进行配置 介绍 后端设计统一返回比如BaseResponse对象&#xff0c;前端也需要接收这个对象&#xff0c;从data取出想要的返回值。 前端请求比如之前返回的是numbe…

windows子系统wsl完成本地化设置locale,LC_ALL

在 Windows 的子系统 Linux&#xff08;WSL&#xff09;环境中&#xff0c;解决本地化设置问题可以采取以下步骤&#xff1a; 1. **检查本地化设置**&#xff1a; 打开你的 WSL 终端&#xff08;比如 Ubuntu、Debian 等&#xff09;&#xff0c;运行以下命令来查看当前的本…

大数据技术基础编程、实验和案例----大数据课程综合实验案例

一、实验目的 (1&#xff09;熟悉Linux系统、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用&#xff1b; (2&#xff09;了解大数据处理的基本流程&#xff1b; (3&#xff09;熟悉数据预处理方法&#xff1b; (4&#xff09;熟悉在不同类型数据库之…

湖南(用户洞察)源点咨询 论用户画像于精准营销之意义作用

湖南源点市场调研咨询认为&#xff0c;精准描摹用户画像是实现有效获客的重要方法。 因为只有通过用户画像&#xff0c;我们才能够持续不断了解用户现阶段的需求&#xff0c;痛点以及偏好。 用户画像不是简单的理解为对人群打标签&#xff0c;而是要通过大量的数据采集和分析…

螺旋文字滚动特效源码解析

如图所示&#xff0c;今天看到一个很炫酷的双文字螺旋滚动特效&#xff0c;两行文字呈螺旋状变化&#xff0c;在网站中这样的效果对用户很有吸引力。本文将基于原网站解析如何实现这个炫酷的效果&#xff0c;基于这个动图可以分析出需要实现的要点&#xff1a; 文字呈螺旋状滚…