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需要在网络传数据具有不安全性和数据量过大的问题

    MaxAI
    MaxAI

    MaxAI.me是一款功能强大的浏览器AI插件,集成了多种AI模型。

    下载

保存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

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2449

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1571

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1473

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

951

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1414

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1234

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1445

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1305

2023.11.13

Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

10

2026.01.12

热门下载

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

精品课程

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

共7课时 | 1.1万人学习

PHP课程
PHP课程

共137课时 | 8.5万人学习

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

共6课时 | 6.9万人学习

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

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