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