$PHP_THREE

不言
풀어 주다: 2023-03-23 09:40:02
원래의
1654명이 탐색했습니다.

이 글은 $PHP_THREE를 소개합니다. 내용이 꽤 좋습니다. 필요한 친구들이 참고해 보세요. 1. 기본 인코딩 문자 집합을 설정하세요.


경로: 설정->편집기->파일 인코딩

2. 줄 번호 표시

경로: 편집기->일반->모양


3. 저작권 정보

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

4. 현재 PHP 파일을 실행해 보세요. php 인터프리터가 추가되지 않은 경우 "인터프리터가 지정되지 않았거나 유효하지 않습니다"라는 메시지가 표시됩니다. 이때 수정을 클릭하여 php 인터프리터(php .exe)를 추가하세요.

PhpStorm에서 일반적으로 사용되는 단축키

Ctrl+j: 자동 코드 완성

Ctrl+d: 현재 줄 복사

Shift+2: 빠르게 오류 찾기

Alt+1 : 파일 목록 팝업

  • Ctrl+g: 지정된 줄로 이동

  • F4: 변수의 소스 찾기

  • Ctrl+y: 현재 줄 삭제

  • PhpStorm 디버깅 사용

  • [F7]으로 이동: 단일 단계 실행, 하위 기능을 만나면 단일 단계 실행을 시작하고 계속합니다(즉, 하위 기능으로 이동).

  • [F8]으로 이동: 실행 중 단일 단계 실행, 함수 내에서 하위 기능을 만나면 단일 단계 실행을 위한 하위 기능으로 들어가지 않고 전체 하위 기능을 실행한 다음 중지합니다. 즉, 전체 하위 기능이 하나의 단계로 처리됩니다. 한 가지, 간단한 디버깅 후에는 하위 기능이 없을 때 한 단계씩 실행하는 것과 효과가 동일합니다(즉, 하위 기능은 건너뛰지만 하위 기능은 실행됩니다).

  • step out: 한 단계씩 하위 기능으로 들어갈 때, step out을 사용하면 나머지 하위 기능을 실행하고 이전 기능으로 돌아갈 수 있습니다.

    커서로 실행 커서 위치로 점프

Cookie
  • 쿠키 정보는 문자열 형식으로 저장됩니다

  • Session
  • 사용자가 브라우저를 열고 여러 하이퍼링크를 클릭하면, 서버에 접속하고 여러 웹 리소스에 접속한 후 브라우저를 닫는 전체 프로세스를 세션이라고 합니다.

    해결해야 할 문제

세션 중에 사용자는 장바구니와 같은 일부 데이터를 생성합니다. 각 사용자가 장바구니를 볼 때 선택한 제품이 표시됩니다.

일부 동영상 웹사이트에서는 왜 마지막 시청 기록을 저장할 수 있나요?

사용자의 마지막 탐색 정보를 저장하는 방법과 반복적으로 로그인하지 않고도 사용자를 일정 기간 동안 저장하는 방법은 무엇인가요?

쿠키 만들기

<?php
    //演示如何创建cookie信息
    //把用户名和密码保存到客户端的cookie
    //1:key;2:value;3:interval(秒)

    setcookie("name", "hoki", time() + 10);//当前时间+10秒
    echo "保存成功";?>
로그인 후 복사

세 번째 매개변수가 추가되지 않으면 브라우저 세션이 종료되면 쿠키가 무효화됩니다.

  • 쿠키는 문자열만 저장할 수 있습니다

  • 쿠키 정보 가져오기

        echo "<pre class="brush:php;toolbar:false">";
        print_r($_COOKIE);    echo "<pre class="brush:php;toolbar:false">";    //获取指定的key对应的值
        if(!empty($_COOKIE[&#39;name&#39;])){        echo $_COOKIE[&#39;name&#39;];        return;
        }    echo "cookie失效了";?>
    로그인 후 복사
  • 쿠키 유효 기간이 만료되면 쿠키를 꺼낼 수 없습니다.

쿠키는 http 프로토콜을 통해 서버로 전송됩니다.

  1. 클라이언트는 여러 키-값 쌍을 저장할 수 있습니다. ;

  2. 쿠키는 중국어도 저장할 수 있으며 기본값은 urlencode로 중국어 인코딩입니다.

쿠키는 다양한 키-값 쌍에 대해 다양한 유효 시간을 지정할 수 있습니다.

  1. 쿠키 정보 업데이트

  2. 는 쿠키를 재설정하는 것입니다. 쿠키를 생성하는 것과 같습니다.
  3. 쿠키 정보 삭제

  4. 쿠키를 삭제하려면 브라우저의 삭제 메커니즘을 실행하기 전에 만료일이 과거인지 확인해야 합니다.

  5. 삭제는 특정 키-값 쌍을 나타냅니다

  6. <?php
        //如果要删除某个键,只需要把time()-秒数即可
        setcookie("name","",time()-200);    echo "删除name键成功";?>
    로그인 후 복사

  7. 모든 키-값 쌍 삭제

<?php
    //遍历删除
    foreach($_COOKIE as $key=>$val){
            setcookie("$key","",time()-200);
    }    echo "删除所有的键值对成功";?>
로그인 후 복사

쿠키의 작은 세부정보

삭제하려는 쿠키가 삭제되지 않은 경우 삭제해도 쿠키는 클라이언트에 계속 유지됩니다. 이 웹사이트의 모든 쿠키가 삭제되면 브라우저는 전체 쿠키를 삭제합니다.

    쿠키는 md5 암호화 가능
  •     setcookie("name", md5("hoki"), time() + 10);
    로그인 후 복사
Session
  • 웹사이트에 로그인한 후 웹페이지에서 사용자 이름을 확인하는 방법은 무엇인가요?

  • graph LR浏览器-->|将数据保存到session文件中|session01.phpsession01.php-->|写入|session文件浏览器-->|取出该浏览器保存的session数据|session02.phpsession02.php-->|读取|session文件
    로그인 후 복사
데이터베이스나 쿠키 대신 세션을 선택하는 이유는 무엇입니까?

  • 데이터베이스 구현이 상대적으로 복잡합니다

  • 쿠키는 네트워크를 통해 데이터를 전송해야 하는데, 이로 인해 보안이 불안정하고 데이터 양이 과다하다는 문제가 있습니다

세션 데이터 저장

저장된 데이터 형식: 이름|s:8: ” hoki";

- 이름: 키
- s: 데이터 유형

- 8: 데이터 크기(바이트)

<?php
    echo "<br>--演示如何保存session数据?--<br>";    //1. 初始化session
    session_start();//可通过手册获取(函数扩展->Session扩展->Session函数)
    //2. 保存数据
    $_SESSION[&#39;name&#39;]="hoki";    //3. session文件可以保存double,integer,bool,array,object等类型
    $_SESSION[&#39;age&#39;]=100;//integer
    $_SESSION[&#39;isBoy&#39;]=true;//bool

    //save array
    $arr=array("hoki","lin","handsome");    $_SESSION[&#39;arr&#39;]=$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[&#39;cat&#39;] = $cat;    echo "保存成功";?>
로그인 후 복사
세션 데이터 가져오기

<?php
    echo "<br/>获取session数据<br/>";

    session_start();    //1. 获取所有session
    echo "<pre class="brush:php;toolbar:false">";
    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();?>
로그인 후 복사

세션 데이터 업데이트
    <?php
        session_start();    $_SESSION[&#39;name&#39;] = "小明";    echo "更新成功";?>
    로그인 후 복사
  1. 세션 데이터 삭제

    <?php
        session_start();    //1. 删除某一个键值对
        unset($_SESSION[&#39;name&#39;]);    //2. 删除所有键值对,相当于把当前这个浏览器对应的session文件删除
        session_destroy();    echo "删除session数据成功";?>
    로그인 후 복사

    세션 기능
  2. 세션을 사용하려면 session_start()를 초기화해야 합니다.

세션 파일에 여러 개의 키-값 쌍을 넣을 수 있지만 키가 반복될 수 없으며 해당 값이 기본 데이터가 될 수 있으므로 주의하세요. 유형 또는 배열, 객체




객체를 얻으려면 클래스 정의를 선언해야 합니다

세션은 세션 파일에 해당합니다

  • session.gc_maxlifetime = 1440 秒

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

  • Cookie与Session的区别

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

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

    session的应用例子

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

    MyHall.php

    <?php
        //购物界面
        echo "<h1>欢迎购买</h1>";    echo "<a href=&#39;ShopProcess.php?bookid=sn001&bookname=三国演义&#39;>三国演义</a><br/>";    echo "<a href=&#39;ShopProcess.php?bookid=sn002&bookname=红楼梦&#39;>红楼梦</a><br/>";    echo "<a href=&#39;ShopProcess.php?bookid=sn003&bookname=水浒传&#39;>水浒传</a><br/>";    echo "<a href=&#39;ShopProcess.php?bookid=sn004&bookname=西游记&#39;>西游记</a><br/>";    echo "<hr/>";    echo "<a href=&#39;ShowCart.php&#39;>查看已购商品列表</a>"?>
    로그인 후 복사

    ShowProcess.php

    <?php
        //接收用户购买请求并把书存到session中
        $bookid = $_GET[&#39;bookid&#39;];    $bookname = $_GET[&#39;bookname&#39;];    //保存到session中
        session_start();    $_SESSION[$bookid] = $bookname;    echo "<br/>购买商品成功";    echo "<br/><a href=&#39;MyHall.php&#39;>返回购物界面继续购买</a>";?>
    로그인 후 복사

    ShowCart.php

    <?php
        echo "<h1>购物车商品列表</h1><br/>";
    
        session_start();    foreach($_SESSION as $key=>$val){        echo "书号:".$key.";书名:".$val."<br/>";
        }    echo "<br/><a href=&#39;MyHall.php&#39;>返回购物界面继续购买</a>";?>
    로그인 후 복사

    禁用cookie的处理

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

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

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

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

        if(isset($_GET[&#39;PHPSESSID&#39;])){
            session_id($_GET[&#39;PHPSESSID&#39;]);
        }
    
        session_start();
    로그인 후 복사
    1. 使用常量SID
      在超链接action ,header(“Location:xx”)可以直接拼接SID常量即可

    echo "<a href=&#39;ShopProcess.php?bookid=sn004&bookname=西游记&".SID."&#39;>西游记</a><br/>";
    로그인 후 복사
    1. 启用session.use_trans_sid=1

    如何防止用户非法登录

    登录页面

    session_start();$_SESSION[&#39;loginuser&#39;]=$name;
    로그인 후 복사

    目标页面

    session_start();if(empty($_SESSION[&#39;loginuser&#39;])){
        header("Location: login.php");
    }
    로그인 후 복사

    session垃圾回收机制

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


    PHP文件编程

    获取文件的信息

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

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

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

    <?php
        //第一种方式获取文件信息
        //打开文件
        $file_path = "test.txt";    //fopen函数返回一个指向文件的指针
        if ($fp = fopen($file_path,"r")){        //fstat函数返回文件指针的文件统计信息
            $file_Info = fstat($fp);        echo "<pre class="brush:php;toolbar:false">";
            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);?>
    로그인 후 복사

    读文件

    <?php
        $file_path = "test.txt";    /**************第一种读取方式*******************/
        //判断文件是否存在/*  if(file_exists($file_path)){
            //打开文件
            $fp = fopen($file_path,"a+");
            //读内容,并输入
            $con = fread($fp,filesize($file_path));
            echo "文件的内容是:<br/>";
            //在默认情况下,得到内容输出到网页后,不会换行,因为网页不认为\r\n是换行符
            $con = str_replace("\r\n","<br/>",$con);
            echo $con;
        }else{
            echo "文件不存在";
        }
    
        //关闭文件
        fclose($fp);
    */
        /**************第二种读取方式*******************//*  $con = file_get_contents($file_path);//连关闭的动作都不用写
        //在默认情况下,得到内容输出到网页后,不会换行,因为网页不认为\r\n是换行符
        $con = str_replace("\r\n","<br/>",$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","<br/>",$str);    echo $str;    //关闭文件
        fclose($fp);
    로그인 후 복사

    文件读取的实际用法

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

    db.ini

    host=127.0.0.1user=adminpassword=123456
    로그인 후 복사

    readIni.php

    <?php
        $arr = parse_ini_file("db.ini");
        print_r($arr);    echo "<br/>";    echo $arr[&#39;host&#39;];    echo "<br/>";    echo $arr[&#39;user&#39;];    echo "<br/>";   
        echo $arr[&#39;password&#39;];?>
    로그인 후 복사

    写文件

    <?php
    
        $file_path="C:/test.txt";//路径名的斜杆必须是/
    
        //传统方式写入/*  if(file_exists($file_path)){
            //如果是追加内容,则使用a+的方式打开
            $fp = fopen($file_path,"a+");
            $con = "\r\n这是追加的内容";
            for($i=0;$i<10;$i++){
                fwrite($fp,$con);
            }
        }else{
            echo "执行失败";
        }
        echo "添加成功";
        //关闭文件
        fclose($fp);
    */  
        //第二种方式写入
        $con = "\r\nhello";
        file_put_contents($file_path,$con,FILE_APPEND);//底层封装了fopen(),fwrite()和fclose()
        //如果用第二种方式来循环添加内容的话,效率就没有传统的方式写入高了
        //因为第二种方式总是需要走三步执行一次,如果一定要用第二种方式写入的话,
        //应该先把字符串拼接完再调用file_put_contents函数写入,效率才高
        echo "添加成功";?>
    로그인 후 복사

    复制文件(image)

    <?php
        //路径不要带中文,否则会提示失败信息
        $file_path = "E:\\phpAll\\Apache24\\htdocs\\file\\jay.jpg";    //路径名转码
        $file_target = iconv("utf-8","gb2312","d:\\周杰伦.jpg");    //copy(数据源,目标地址);
        if(!copy($file_path,$file_target)){        echo "error";        return;
        }    echo "success";?>
    로그인 후 복사

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

    <?php
        $file_path = "d:/hoki_test/a/b";    //创建一个文件夹 /*  if(!is_dir($file_path) && mkdir($file_path)){
            echo "create success";
            return;
        }
        echo "create failed";
    */  
    
        //创建多个文件夹(递归创建) /*  if(!is_dir($file_path) && mkdir($file_path,0777,true)){
            //777:可读可写可执行;
            echo "create success";
            return;
        }
        echo "create failed";
    */  
    
        //删除一个文件夹(如果是多级的就删除最外面的那个)
        //如果文件夹下有文件,或者目录,均不能删除成功/*  if(is_dir($file_path) && rmdir($file_path)){
            echo "delete success";
            return;
        }
        echo "delete failed";
    */
    
        //在指定现有目录下创建一个文件并写入内容/*  $file_name = "/test.txt";
        $fp = fopen($file_path.$file_name,"w+");
        $content = "hello world";
        fwrite($fp,$content);
        fclose($fp);
        echo "create file success";
    */
    
        //删除文件
        $file_name = "/test.txt";    if (is_file($file_path.$file_name)){        if (unlink($file_path.$file_name)){            echo "delete file success";            return;
            }        echo "delete file failed";        return;
        }    echo "file none found";?>
    로그인 후 복사

    php文件上传案例

    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>文件上传案例</title>
        </head>
        <body>
            <h1>上传文件</h1>
            <form action="upload.php" method="post" enctype="multipart/form-data">
                请选择文件:
                <input type="file" name="file" />
                <input type="submit" value="上传" />
            </form>
        </body>
    </html>
    로그인 후 복사
    <?php
        //取文件信息
        $arr = $_FILES["file"];    //var_dump($arr);
        //加限制条件
        //1.文件类型
        //2.文件大小
        //3.保存的文件名不重复
        if(($arr["type"]=="image/jpeg" || $arr["type"]=="image/png" ) && $arr["size"]<10241000 )
        {        //临时文件的路径
            $arr["tmp_name"];        //上传的文件存放的位置
            //避免文件重复: 
            //1.加时间戳.time()加用户名.$uid或者加.date(&#39;YmdHis&#39;)
            //2.类似网盘,使用文件夹来防止重复
            $filename = "./images/".date(&#39;YmdHis&#39;).$arr["name"];        //保存之前判断该文件是否存在
            if(file_exists($filename))
            {            echo "该文件已存在";
            }        else
            {            //中文名的文件出现问题,所以需要转换编码格式
                $filename = iconv("UTF-8","gb2312",$filename);            //移动临时文件到上传的文件存放的位置(核心代码)
                //括号里:1.临时文件的路径, 2.存放的路径
                move_uploaded_file($arr["tmp_name"],$filename);
            }
        }else{        echo "上传的文件大小或类型不符";
        }?>
    로그인 후 복사

    PHP绘图

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

    步骤

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

    1. 创建画布

    2. 绘制需要的各种图形

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

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

    图片格式的比较

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

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

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

    基本步骤模板

    <?php
        //1. 创建画布,默认背景是黑色的
        $im = imagecreatetruecolor(800,600);    //修改背景颜色
        $white = imagecolorallocate($im,255, 255, 255);
        imagefill($im,0,0,$white);    //2. 绘制需要的各种图形
        //创建三个颜色
        $red = imagecolorallocate($im,255, 29, 0);    $blue = imagecolorallocate($im,6, 81, 244);    $gary = imagecolorallocate($im,178, 174, 170);    //3. 输出图像到网页,也可另存
        header("content-type: image/png");
        imagepng($im);    //4. 销毁图片(服务器端的),释放内存
        imagedestroy($im);?>
    로그인 후 복사

    例子

    <?php//  1. 创建画布,默认背景是黑色的
        $im = imagecreatetruecolor(800,600);//  2. 绘制需要的各种图形
        //创建一个颜色
        $red = imagecolorallocate($im,255,0,0);    //ellipse:椭圆
        imageellipse($im,20,20,20,20,$red);    //直线
        imageline($im,0,0,400,300,$red);    //矩形
        imagerectangle($im,150,150,40,50,$red);    //填充矩形
        imagefilledrectangle($im,0,0,40,50,$red);//PHP设计者设计函数名时设计得不好
        //弧线(顺时针)
        imagearc($im,100,100,50,50,0,180,$red);    //扇形
        imagefilledarc($im,100,100,50,50,180,270,$red,IMG_ARC_PIE);
        imagefilledarc($im,100,100,50,50,270,360,$red,IMG_ARC_PIE);    //拷贝图像到画布
        //加载源图片/*  $srcImage = imagecreatefromjpeg("cat.jpg");
        //获取图片的宽和高存于数组中
        $srcImageInfo = getimagesize("cat.jpg");
        //拷贝源图片到目标画布
        imagecopy($im,$srcImage,0,10,200,0,$srcImageInfo[0],$srcImageInfo[1]);
    */  
        //字符串
        $str = "hello world,中文";//  imagestring($im,10,400,200,$str,$red);//中文显示乱码
        //在字体库C:\Windows\Fonts中找中文字体//  imagettftext($im,10,0,50,50,$red,"STFANGSO.TTF",$str);//  3. 输出图像到网页,也可另存
        header("content-type: image/png");
        imagepng($im);//  4. 销毁图片(服务器端的),释放内存
        imagedestroy($im);?>
    로그인 후 복사

    饼状统计图的绘制

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

    <?php
        //1. 创建画布,默认背景是黑色的
        $im = imagecreatetruecolor(800,600);    //修改背景颜色
        $white = imagecolorallocate($im,255, 255, 255);
        imagefill($im,0,0,$white);    //2. 画出扇形
        //创建三个颜色
        $red = imagecolorallocate($im,255, 29, 0);    $darkred = imagecolorallocate($im,144, 0, 0);    $blue = imagecolorallocate($im,6, 81, 244);    $darkblue = imagecolorallocate($im,0, 0, 80);    $gary = imagecolorallocate($im,178, 174, 170);    $darkgary = imagecolorallocate($im,144, 144, 144);    //立体扇形其实就是多个扇形的叠加
        for ($i=200;$i>=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);?>
    로그인 후 복사

    验证码

    <?php
        echo "<img src=yanzhengma.php>";?>
    로그인 후 복사
    <?php
        function random($len){
            $srcstr = "ABCDEFGHIJKLMNONPQRSTUVWXYZ0123456789";
            mt_rand();        $strs = "";        for($i=0;$i<$len;$i++){            $strs.=$srcstr[mt_rand(0,35)];
            }        return strtoupper($strs);
        }    $str = random(4);//随机生成的字符串
        $width = 50;    $height = 25;
        @header("Content-Type: image/png");    $im = imagecreate($width,$height);    $back = imagecolorallocate($im,0xFF,0xFF,0xFF);    //模糊点颜色
        $pix = imagecolorallocate($im,187,230,247);    //字体色
        $font = imagecolorallocate($im,41,163,238);    //绘制模糊作用的点
        mt_srand();    for($i=0;$i<1000;$i++){
            imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$pix);  
        }
        imagestring($im,5,7,5,$str,$font);
        imagerectangle($im,0,0,$width-1,$height-1,$font);
        imagepng($im);
        imagedestroy($im);?>
    로그인 후 복사

    相关推荐:

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

    php中tree类的使用方法

    위 내용은 $PHP_THREE의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    php
    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿