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 检查更新
注意:苹果官方是不允许app具有检查更新提示! //直接跳转到AppStore - (void)setUpAppUpdate { [ServerData queryGetURL:@{@" ...
- iOS---去除url中的反斜扛
// NSString * str = [url stringByReplacingOccurrencesOfString:@"\\/" withString:@" ...
- GIT在iOS开发中的使用
前言 在iOS开发中,很多公司对项目的版本控制管理都使用了git,当然也有部分公司使用的是svn.当年我最初接触的是svn,觉得使用起来挺方便的,但是每次切分支都需要下载一份新的代码起来,这实在太麻烦 ...
- Helpful Tool
Remote Connectivity Analyzer(Online) https://testconnectivity.microsoft.com/ https://technet.microso ...
- 7、软件质量工程师要阅读的书籍 - IT软件人员书籍系列文章
软件质量工程师在项目组中的作用不是那么明显,但是它是软件质量的重要度量标准人员.有句话说:软件质量是生产出来的,不是开发出来的.通过软件质量审查,能够对软件项目的代码等质量进行衡量,最起码要能够对代码 ...
- 浅谈JS中的继承
前言 JS 是没有继承的,不过可以曲线救国,利用构造函数.原型等方法实现继承的功能. var o=new Object(); 其实用构造函数实例化一个对象,就是继承,这里可以使用Object中的所有属 ...
- Javascript之旅——第四站:parseInt中要注意的坑
前些天信用卡站点要接入一个新功能,不过还真比较坑爹,asp站点,大家都知道信用卡的背面是有一个有效期的,在对接银行中这个信息 一定是要传给银行做数据校验,用户在语音输入信用卡有效期后,系统会做一个有效 ...
- 10个开源的PHP网站内容管理系统
1. DEDE -这是一款国内开源的cms,作者是一个个人,能做出如此功能的cms,是相当不错的.2007版功能十分强大,希望能改善之前数据量一大,更新静态页就很慢的缺点.因为开源,有较多的玩家和拥护 ...
- windows开关机时间记录
1. 开机时间记录批处理文件,kai.bat @echo off echo %date% %time% 开机 >>D:\开关机记录\开关机时间.txt 2. 关机时间记录批处理文件,gua ...
- 烂泥:linux文件同步之rsync学习(一)
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 这几天刚好有空就打算开始学习linux下的文件同步软件rsync,在学习rsync时,我们可以分以下几个步骤进行: 1. rsync是什么 2. rsy ...