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,'/');

?>
原文地址:https://www.cnblogs.com/bai-jimmy/p/3842091.html