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\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,'/'); ?>
PHP核心技术与最佳实践--笔记的更多相关文章
- PHP核心技术与最佳实践——全局浏览
难得买到并喜欢一本好书,‘PHP核心技术与最佳实践’. 几天时间,先看了个大概,总结一下整体是什么样子的,怎么看怎么学. 1.总共14章: 2.第1.2章讲PHP的OOP: 其中第一章侧重于PHP的O ...
- 温习《PHP 核心技术与最佳实践》这本书
再次看这本书,顺手提炼了一下大致目录,以便后续看见目录就知道大概讲的些什么内容 PHP 核心技术与最佳实践 1.面向对象思想的核心概念 1.1 面向对象的『形』与『本』 1.2 魔术方法的应用 1.2 ...
- web前端开发最佳实践笔记
一.文章开篇 由于最近也比较忙,一方面是忙着公司的事情,另外一方面也是忙着看书和学习,所以没有时间来和大家一起分享知识,现在好了,终于回归博客园的大家庭了,今天我打算来分享一下关于<web前端开 ...
- 【大数据和云计算技术社区】分库分表技术演进&最佳实践笔记
1.需求背景 移动互联网时代,海量的用户每天产生海量的数量,这些海量数据远不是一张表能Hold住的.比如 用户表:支付宝8亿,微信10亿.CITIC对公140万,对私8700万. 订单表:美团每天几千 ...
- Mysql索引最佳实践笔记0524
#mysql5.7 innodb默认存储引擎 一.关于索引二.最佳实践三.避坑实践 一.关于索引 1.索引的作用 -提高查询效率 -数据分组.排序 -避免回表查询 -优化聚集查询 -用于多表join关 ...
- 《深入理解Java 7核心技术与最佳实践》读书笔记(2) Java语言动态性引言
Java语言是一种静态类型的编程语言.静态类型的含义是指在编译时进行类型检查.Java源代码中的每个变量的类型都要显式地进行声明.所有变量.方法的参数和方法返回值的类型在程序运行之前就必须是已知的.J ...
- 《Java核心技术与最佳实践》读书笔记
第一章 Java7新语法 1.switch中使用字符串 2.增加二进制表示0b10101010:数字字面量允许直径使用下划线12_34_90 3.一个catch字句捕获多个异常,多个异常之间用|分隔 ...
- php核心技术与最佳实践(笔记一)
1.1面向对象的型与本 类是对象的抽象组织,对象是类的具体存在. 1.1.1对象的形 <?php class Person{ public $name; public $gender; publ ...
- 《深入理解Java7核心技术与最佳实践》读书笔记(1.1)---Project Coin介绍
OpenJDK中的Coin项目(Project Coin)的目的就是为了收集对Java语言的语法进行增强的建议.在Coin项目开始之初,曾经广泛地向社区征求提议.在短短的一个月时间内就收到将近70条提 ...
随机推荐
- iOS开发和localStorage/sessionStorage
一.前言 在近期的工作中,有前端同学告诉我要清除localStorage,我当时对localStorage完全没有概念,所以就在w3c看了一下相关的内容,下面简单的介绍一下.算是对iOS开发者普及H5 ...
- OC中的特有语法
一. 分类-Category 1. 基本用途 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 l 继承 l 分类(Category) 2. 格式 分类的声明 @interface 类名 ...
- apache 虚拟ip
参考 http://blog.sina.com.cn/s/blog_5d8ca1e90100hnpv.html <VirtualHost 127.0.0.1:80> Docume ...
- js window对象
BOM的核心对象是window,它表示浏览器的一个实例. 在浏览器中,window对象是(1)通过JavaScript访问浏览器窗口的一个接口 (2)ECMAScript规定的Global对象 1.全 ...
- mysql一些小技巧
1 强制命中索引:force index 某些时候查询,索引会失效,可以进行强制命中索引 2 group_concat 能将相同的行组合起来. 当然,我推荐这种操作可以在代码中操作,如果必须在特定情况 ...
- WPF学习之路(十二)控件(Content控件)
Label Label相比TextBlock功能并不强大,但是支持键盘快捷键的方式获得焦点 <StackPanel> <Label Target="{Binding Ele ...
- 利用yii2 gridview实现批量删除案例
作者:白狼 出处:http://www.manks.top/article/yii2_gridview_deleteall本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...
- 使用虚拟信用卡认证openshift铜牌计划
"铜牌计划(bronze)"是OpenShift推出的一项免费计划,这个计划能为你提供更多的免费便利,主要就是可以自己绑域名加SSL证书和应用即使24小时没人访问也不关机了.说这个 ...
- JavaScript Patterns 5.2 Declaring Dependencies
It’s a good idea to declare the modules your code relies on at the top of your function or module. T ...
- Tomcat:bio nio 的设计
BIO 由Acceptor接收Socket,将其转交给Worker来处理. NIO 由Acceptor接收Socket,将其转交给Poller来轮询处理.Poller再将可处理的Socket交给Wo ...