• PHP核心技术与最佳实践--笔记


    <?php
    
    error_reporting(E_ALL);
    /* php 5.3引入 延迟静态绑定 */
    /* php5.4引入trait,用来实现多层继承 trait Hello{} trait World{} class MyHelloWorld{ use Hello,World; } */
    /* php4时代 php是不支持析构函数的*/
    
    /* php中数组索引是字符串,但是没有使用引号,php就将其认为是一个常量,找不到在视为变量 */
    
    /**
     * php中的异常必须手动
     * 可以结合错误处理机制让php自动抛出异常
     * set_error_handler(error_function,E_ALL|E_STRICT) //默认E_ALL   反函数 restore_error_handler();
     * fetal error 或者程序结束时 register_shutdown_function           error_get_last();
     */
    
    /*try {
        
    } catch (TypeException $e) {
        
    } catch (PDOException $e) {
        
    } catch (Exception $ex) {
        //异常统一处理
    }*/
    
    /* 
    面向对象设计的原则
        单一指责
        接口隔离
        开闭原则
        替换原则
        依赖倒置(上层模块不能依赖与下层、抽象不能依赖于具体)
     */
    
    /*
    php中有两套正则表达式
        1、由PCRE(Perl Compatible Regular Expression)库提供的函数,以'preg_'开头
        2、由POSIX(Protable Operating System Interface of UNIX [UNIX可移植操作系统接口],定义了基础正则表达式和扩展正则表达式)扩展提供的函数,以'ereg_'开头
        [.!?] 不需要转义
     * 断言
     * 顺序肯定环视 (?=exp)
     * 逆序肯定环视 (?<=exp)
     * 顺序否定环视 (?!exp)
     * 逆序否定环视 (?<!exp)
     * 
     * 正则的优先级
     *         转义符
     *      () (?:) (?=) (?<=) (?!) (?<!) [] 括号和中括号
     *      ? + * {n,m}    限定符
     *      ^ $ dsdsdf     定位符和序列
     *      | 替换
     *          m|foot (m|f)oot
     * 
     * 正则表达式的常用模式
     * i 忽略大小写
     * m 多行匹配模式
     * s 点通配模式
     * U 懒惰匹配模式
     * D 结尾限制 'abc
    ' /abc/ /abc/D
     * u 支持utf-8转义表达式 [x{4e00}-x{9fa5}]
     * x 忽略表达式中的空白
     * 
     * 效率
     * filter_var($email,FILTER_VALIDATE_EMAIL)
     * filter_var($url,FILTER_VALIDATE_URL)
     */
    
    /**
     * 1xx 提示信息--请求以接受,继续处理
     * 2xx 成功
     * 3xx 重定向--要完成请求必须进行更进一步的操作
     * 4xx 客户端错误
     * 5xx 服务端错误
     * 
     * 200 OK
     * 400 Bad Request 客户端请求语法错误,不能被服务端所理解
     * 401 Unauthorize 请求未经授权
     * 403 Forbidden
     * 404 Not Found
     * 500 Internal Server Error 服务器发生不可预测的错误
     * 503 Server Unavailabel 服务器当前不能处理客户端的请求,一段时间后可能恢复正常
     */
    
    
    /**
     * 垃圾信息防御措施
     *  ip限制
     *      获取客户端ip方法 ??? 
     *  验证码
     *  Token
     *      createToken verifyToken
     *  审核机制
     */
    
    /**
     * CURL
     *      $ch=curl_init()
     *      curl_setopt($ch,OPTIONS)
     *      $output=curl_exec($ch);
     * //   $info=curl_getinfo($ch);
     *      curl_close($ch)
     * OPTIONS :
     * CURLOPT_URL
     * CURLOPT_RETURNTRANSFER
     * CURLOPT_HEADER
     * CURLOPT_POST
     * CURLOPT_POSTFIELDS
     *      curl_setopt($ch,CURLOPT_POSTFIELDs,array('foo'=>'bar));
     *      //上传文件
     *      curl_setopt($ch,CURLOPT_POSTFIELDs,array('foo'=>'bar','upload'=>'@test.jpg'));
     * CURLOPT_HTTPHEADER
     *      curl_setopt($ch,CURLOPT_HTTPHEADER,array('HTTP_ACCEPT://...',''));
     * CURLOPT_COOKIEJAR, 设置cookie保存的文件
     *      curl_setopt($ch,CURLOPT_COOKIEJAR,tempnam('/tmp','prefix'));
     * CURLOPT_COOKIEFILE   指定获取cookie的文件名
     *      curl_setopt($ch,CURLOPT_COOKIEFIEL,'/tmp/prefix3243234326,tmp');
     * CURLOPT_COOKIE 设置cookie
     *      curl_setopt($ch,CURL_COOKIE,'name=jimmy');
     * 
     */
    
    /**
     * socket
     * ob
     */
    
    session_start();
    
    print_r($_SESSION);
    
    //$_SESSION['name']='jimmy';
    
    //setcookie(session_name(),  session_id(),  time()+3600,'/');
    
    ?>
  • 相关阅读:
    Android——另外一种增删查改的方式(ContentProvider常用)
    VS2012下基于Glut OpenGL glScissor示例程序:
    JAXP的SAX解析
    38岁老男孩个人建站方向求教
    [置顶] 某大型银行深化系统技术方案之十三:服务层之服务接口模式
    比特币人必知术语
    ok6410 u-boot-2012.04.01移植二修改源码支持单板
    最近修bug的一点感悟
    小智慧24
    redis beforesleep
  • 原文地址:https://www.cnblogs.com/bai-jimmy/p/3842091.html
Copyright © 2020-2023  润新知