<?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\n‘ /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,‘/‘); ?>