0

0

$PHP_THREE

不言

不言

发布时间:2018-04-26 14:52:33

|

1897人浏览过

|

来源于php中文网

原创

本篇文章介绍的是$php_three,内容挺不错的,有需要的朋友可以参考一下,大家一起来看看吧


PHP_THREE

PhpStorm的使用

PhpStorm的设置

1.设置默认编码字符集

路径:Settings->Editor->File Encodings

2.显示行号

路径:Editor->General->Appearance

3.版权信息

立即学习PHP免费学习笔记(深入)”;

/**
 * COPYRIGHT (C) ${YEAR} BY ${user} SOFTWARE. ALL RIGHTS RESERVED.
 *
 * @author:${user}
 * @date:${YEAR}/${MONTH}/${DAY}
 * @since:1.0
 * @description:
 */

4.添加PHP解释器

试着run当前PHP文件,如果没有添加php解释器,会提示”interpreter is not specified or invalid”,此时,点击Fix,添加php解释器(php.exe)。

PhpStorm的常用快捷键

  • Ctrl+j:自动代码补全

  • Ctrl+d: 复制当前行

  • Shift+2:快速定位错误

  • Alt+1:弹出文件列表

  • Ctrl+g:跳转到指定行

  • F4:查找变量来源

  • Ctrl+y:删除当前行

PhpStorm的调试使用

  • step into [F7]:单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数);

  • step over [F8]:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。有一点,经过我们简单的调试,在不存在子函数的情况下是和step into效果一样的(简而言之,越过子函数,但子函数会执行)。

  • step out:当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。
    run to cursor 跳到光标的位置


Cookie

cookie信息会以字符串的形式保存

会话

用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。

要解决的问题

  • 在一个会话过程中,用户会产生一些数据,比如购物车,每个用户查看购物车时,看到自己选的商品,这是怎么实现的?

  • 为什么有些视频网站可以保存你上次看过的记录?

  • 如何保存用户上次浏览的信息,如何保存用户在一定时间内,不用反复登录?

创建cookie

  1. 如果不加第三个参数,cookie不会保存到客户端,当浏览器的会话结束,我们的cookie就失效

  2. cookie只能保存字符串

获取cookie信息

    echo "
";
    print_r($_COOKIE);    echo "
";    //获取指定的key对应的值
    if(!empty($_COOKIE['name'])){        echo $_COOKIE['name'];        return;
    }    echo "cookie失效了";?>
  1. 如果cookie有效时间到,则不能取出;

  2. cookie通过http协议传输到服务器;

  3. 客户端可以保存多个键值对;

  4. cookie也可以保存中文,默认将会对中文进行urlencode进行编码;

  5. cookie可以给不同的键值对指定不同的有效时间

更新cookie信息

就是重置cookie,跟创建cookie一样

删除cookie信息

要删除cookie需要确保它的失效期是在过去,才能触发浏览器的删除机制

  • 删除指的定某个键值对

  • 删除所有的键值对

$val){
            setcookie("$key","",time()-200);
    }    echo "删除所有的键值对成功";?>

cookie的小细节

  • 如果你要删除的cookie没有删除完,则这个cookie在客户端依然是有保留的;如果你把这个网站的所有cookie都删除了,则浏览器会把整个文件都删除据。

  • cookie可以进行md5加密

    setcookie("name", md5("hoki"), time() + 10);

Session

如何实现登陆某个网站后能在任何一个网页上查看用户名?

graph LR浏览器-->|将数据保存到session文件中|session01.phpsession01.php-->|写入|session文件浏览器-->|取出该浏览器保存的session数据|session02.phpsession02.php-->|读取|session文件

为什么选择session而不是数据库或cookie?

  1. 数据库实现起来较为复杂

  2. cookie需要在网络传数据具有不安全性和数据量过大的问题

    Bandy AI
    Bandy AI

    全球领先的电商设计Agent

    下载

保存session数据

保存的数据格式: name|s:8:”hoki”;
- name: key
- s: Data Type
- 8: Data Size(Byte)

--演示如何保存session数据?--
"; //1. 初始化session session_start();//可通过手册获取(函数扩展->Session扩展->Session函数) //2. 保存数据 $_SESSION['name']="hoki"; //3. session文件可以保存double,integer,bool,array,object等类型 $_SESSION['age']=100;//integer $_SESSION['isBoy']=true;//bool //save array $arr=array("hoki","lin","handsome"); $_SESSION['arr']=$arr; //save object class Cat{ private $name; private $age; private $intro; function __construct($name,$age,$intro){ $this->name = $name; $this->age = $age; $this->intro = $intro; } public function getName(){ return $this->name; } public function getAge(){ return $this->age; } public function getIntro(){ return $this->intro; } } $cat = new Cat("猫","2","well"); $_SESSION['cat'] = $cat; echo "保存成功";?>

获取session数据

获取session数据
"; session_start(); //1. 获取所有session echo "
";
    print_r($_SESSION);    echo "
";    //2. 通过key来指定获取某个值     echo "名字是:".$_SESSION[name];    $arr = $_SESSION['arr'];    echo "
数组的数据是:";    foreach($arr as $key=>$val){        echo "
$val";     }    //3. 获取对象     //因为对象没有串行化,所以要把类的定义也搬过来     //当然,也可以把类的定义独立出来,要用到时require_once调用即可     class Cat{         private $name;        private $age;        private $intro;        function __construct($name,$age,$intro){             $this->name = $name;            $this->age = $age;            $this->intro = $intro;         }        public function getName(){             return $this->name;         }        public function getAge(){             return $this->age;         }        public function getIntro(){             return $this->intro;         }     }    $cat = $_SESSION['cat'];    echo "
猫的名字是:".$cat->getName();    echo "
猫的年龄是:".$cat->getAge();    echo "
猫的介绍是:".$cat->getIntro();?>

更新session数据

删除session数据

session的特点

  1. 要使用session,都需要初始化session_start();

  2. session文件中可以放入多个键值对,但要注意键不能重复,值则可以为基本数据类型或数组,对象

  3. 如果要获取对象,则需要声明类的定义

  4. 一个会话对应一个session文件

  5. session.gc_maxlifetime = 1440 秒

  6. 在php.ini文件中搜索session.save_path,可以查看session文件的默认保存路径

Cookie与Session的区别

  • Cookie是把用户的数据写给用户的浏览器

  • Session是把用户的数据写到用于独有的$_SESSION中,存在服务器的某个路径的文件中

session的应用例子

F12查看效果更佳;记得清除浏览器缓存;

MyHall.php

欢迎购买";    echo "三国演义
"; echo "红楼梦
"; echo "水浒传
"; echo "西游记
"; echo "
"; echo "查看已购商品列表"?>

ShowProcess.php

购买商品成功";    echo "
返回购物界面继续购买";?>

ShowCart.php

购物车商品列表
"; session_start(); foreach($_SESSION as $key=>$val){ echo "书号:".$key.";书名:".$val."
"; } echo "
返回购物界面继续购买";?>

禁用cookie的处理

浏览器->工具->Internet选项->隐私->高级

如果用户禁用cookie后,服务器每次session_start();都会创建一个全新的session文件,后果就是无法让多个php页面共享同一份session文件。

有三种方式可以实现在客户端禁用cookie后共享session

  1. 在每个超链接上添加一个PHPSESSID=sessionId;同时在每个页面加入:

    if(isset($_GET['PHPSESSID'])){
        session_id($_GET['PHPSESSID']);
    }

    session_start();
  1. 使用常量SID
    在超链接action ,header(“Location:xx”)可以直接拼接SID常量即可

echo "西游记
";
  1. 启用session.use_trans_sid=1

如何防止用户非法登录

登录页面

session_start();$_SESSION['loginuser']=$name;

目标页面

session_start();if(empty($_SESSION['loginuser'])){
    header("Location: login.php");
}

session垃圾回收机制

当某个用户操作session的时候,会使用到session_start(),该函数会调用gc,但是其概率是session.gc_probability/session.gc_pisor;如果网站的规模越大,应该把这个概率设置得越小。


PHP文件编程

获取文件的信息

  • [atime] => 1523005390 该文件上一次被访问的时间戳

  • [mtime] => 1523005397 该文件上一次内容被修改时间戳

  • [ctime] => 1523005390 该文件上一次文件所有者/文件所在组被修改的时间戳

";
        print_r($file_Info);        echo "
";        //获取文件大小等         echo "
文件大小:".$file_Info['size'];        //如果会出现警告,可能是没有在php.ini中设置时区         //修改date.timezone = UTC后重启即可         echo "
文件上次修改时间:".date("Y-m-d H:i:s",$file_Info['mtime']);        echo "
文件上次访问时间:".date("Y-m-d H:i:s",$file_Info['atime']);        echo "
文件上次change时间:".date("Y-m-d H:i:s",$file_Info['ctime']);     }else{        echo "打开文件失败";     }    //关闭文件指针     fclose($fp);    //第二种方式获取文件信息     echo "
".filesize($file_path);    echo "
".fileatime($file_path);    echo "
".filectime($file_path);    echo "
".filemtime($file_path);?>

读文件

";
        //在默认情况下,得到内容输出到网页后,不会换行,因为网页不认为\r\n是换行符
        $con = str_replace("\r\n","
",$con); echo $con; }else{ echo "文件不存在"; } //关闭文件 fclose($fp); */ /**************第二种读取方式*******************//* $con = file_get_contents($file_path);//连关闭的动作都不用写 //在默认情况下,得到内容输出到网页后,不会换行,因为网页不认为\r\n是换行符 $con = str_replace("\r\n","
",$con); echo $con; */ /**************第三种读取方式*******************/ $fp = fopen($file_path,"a+"); //设置一次读取1024个字节 $buffer = 1024; $str = ""; //一边读,一边判断是否到文件结束位置 while(!feof($fp)){ //读内容 $str.= fread($fp,$buffer); } //在默认情况下,得到内容输出到网页后,不会换行,因为网页不认为\r\n是换行符 $con = str_replace("\r\n","
",$str); echo $str; //关闭文件 fclose($fp);

文件读取的实际用法

连接数据库的时候,可以把用户名,密码等配置到一个外部文件

db.ini

host=127.0.0.1user=adminpassword=123456

readIni.php

";    echo $arr['host'];    echo "
"; echo $arr['user']; echo "
"; echo $arr['password'];?>

写文件

复制文件(image)

文件及文件夹的创建和删除

php文件上传案例



    
        
        文件上传案例
    
    
        

上传文件

请选择文件:

PHP绘图

像素是密度单位,不是长度单位

步骤

在php.ini中启动gd库(extension=php_gd2.dll)

  1. 创建画布

  2. 绘制需要的各种图形

  3. 输出图像到网页,也可另存

  4. 销毁图片(服务器端的),释放内存

图片格式的比较

  • GIF:压缩率高,但是只能显示256色,会造成颜色丢失,可以显示动画

  • JPG/JPEG:压缩率高(有损压缩),可以用较小的文件来显示,网页上用的比较多

  • png:该格式综合了GIF和JPG的优势,缺点是不能显示动画

基本步骤模板

例子

饼状统计图的绘制

可封装为一个函数,方便使用

=150;$i--){
        imagefilledarc($im,350,$i,200,150,0,35,$darkblue,IMG_ARC_PIE);
        imagefilledarc($im,350,$i,200,150,35,75,$darkgary,IMG_ARC_PIE);
        imagefilledarc($im,350,$i,200,150,75,360,$darkred,IMG_ARC_PIE);
    }    //在上面加个盖
    imagefilledarc($im,350,150,200,150,0,35,$blue,IMG_ARC_PIE);
    imagefilledarc($im,350,150,200,150,35,75,$gary,IMG_ARC_PIE);
    imagefilledarc($im,350,150,200,150,75,360,$red,IMG_ARC_PIE);    //3. 输出图像到网页,也可另存
    header("content-type: image/png");
    imagepng($im);    //4. 销毁图片(服务器端的),释放内存
    imagedestroy($im);?>

验证码

相关推荐:

PHPTree——php快速生成无限级分类_php技巧

php中tree类的使用方法

$PHP_THREE

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
phpstorm怎么导出项目
phpstorm怎么导出项目

phpstorm提供导出项目功能,步骤如下:打开phpstorm项目转到“项目”菜单选择“导出项目”选择导出格式指定导出位置选择导出范围勾选“包括依赖项”框(可选)单击“导出”完成导出。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

363

2024.04.08

phpStorm怎么运行
phpStorm怎么运行

本专题整合了phpstorm运行教程,阅读专题下面的文章了解更多相关内容。

85

2025.09.18

phpstorm开发环境搭建教程
phpstorm开发环境搭建教程

本专题整合了phpstorm开发环境搭建和运行项目教程,阅读专题下面的文章了解更多详细教程。

77

2025.09.18

phpstorm怎样运行php
phpstorm怎样运行php

本专题整合了phpstorm运行php相关教程,阅读专题下面的文章了解更多详细内容。

62

2025.09.18

phpstorm相关教程大全
phpstorm相关教程大全

本专题整合了phpstorm相关教程汇总,阅读专题下面的文章了解更多详细内容。

12

2026.01.15

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

309

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

222

2025.10.31

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1501

2023.10.24

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

158

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ITcastjQuery视频教程
ITcastjQuery视频教程

共7课时 | 1.1万人学习

PHP课程
PHP课程

共137课时 | 10万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号