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核心技术与最佳实践--笔记,布布扣,bubuko.com

时间: 2024-10-17 09:43:07

PHP核心技术与最佳实践--笔记的相关文章

PHP核心技术与最佳实践之Hash算法

PHP核心技术与最佳实践之Hash算法 Hash表又称散列表,通过把关键字Key映射到数组中的一个位置来访问记录,以加快查找速度.这个映射函数称为Hash函数,存放记录的数组称为Hash表. 1.     Hash函数 作用是把任意长度的输入,通过Hash算法变换成固定长度的输出,该输出就是Hash值.这种转换是一种压缩映射,也就是Hash值得空间通常远小于输入的空间,不输入可能会散列成相同的输出,而不可能从Hash值来唯一的确定输入值. 一个好的hash函数应该满足以下条件:每个关键字都可以均

PHP核心技术与最佳实践之Hash表冲突

PHP核心技术与最佳实践之Hash表冲突 接着上一篇文章,测试后输出value1value2.当 $ht->insert('key12','value12'); Echo $ht ->find('key12');时, 发现输出value12value12.这是什么原因呢? 这个问题称为Hash表的冲突.由于insert的是字符串,采用的算法是将字符串的ASIIC码相加,按照此方法,冲突产生了.通过打印key12和key1的Hash值,发现他们都为8,也就说,value1和value12同时被存

PHP核心技术与最佳实践之正则表达式匹配规则

PHP核心技术与最佳实践之正则表达式匹配规则 本文介绍几种常用的匹配规则. 1.     字符组 查找数字.字母.空白很简单,因为已经有了对应这些集合的元字符,但是如果匹配没有预定义元字符的字符集合,方法很简单, 就是在方括号内列出它们. 例如:[aeiou]匹配任何一个英文元音字母,[.*?]匹配标点中的一个.注意此时方括号内的元字符失去了特殊意义. 也可以指定字符范围,例如[0-9]的含义和\d完全一致:代表一位数字:同理[a-zA-Z0-9]等同于\w; 字符组很简单,但是一定要弄清楚字符

PHP核心技术与最佳实践之正则表达式反向引用

PHP核心技术与最佳实践之正则表达式反向引用 反向引用用于重复搜索前面某个分组匹配的文本.例如:"\1"代表分组1匹配的文本: \b(\w+)\b\s+\1\b 要反向引用分组捕获的内容,可以使用"\k<word>"上个例子: \b(?<word>\w+)\b\s+\k<word>\b [示例]:UBB标签代码 UBB标签用来在论坛和留言板中代替HTML,实现一些简单的HTML效果,同时防止滥用HTML出现安全问题. 最终UBB标

PHP核心技术与最佳实践之对象的序列化

PHP核心技术与最佳实践之对象的序列化 对象是一堆数据,可以把对象存储起来,以便需要时使用,这就是对象的序列化. 所谓序列化,就是把保存在内存中的各种对象状态(属性)保存起来,并且在需要时可以还原出来.下面代码实现了把内存中的对象当前状态保存到一个文件中. $str = serialize($student); Echo $str; File_put_contents('store.txt',$str); 输出序列化后的结果: O:6:"person":2:{s:4:"nam

PHP核心技术与最佳实践——全局浏览

难得买到并喜欢一本好书,‘PHP核心技术与最佳实践’. 几天时间,先看了个大概,总结一下整体是什么样子的,怎么看怎么学. 1.总共14章: 2.第1.2章讲PHP的OOP: 其中第一章侧重于PHP的OOP与Java等的对比,面对对象开发的概念性问题,PHP的OOP的特殊之处,并对此给出代码例子: 3.第3.4.5章对某一个基础技术应用进行详解: 第3章讲正则表达式(md,为啥我总是看了就忘,这个东西...): 第4章讲网络技术,包括HTTP协议,socket,抓包,cURL,SMTP等应用层应用

PHP核心技术与最佳实践

<PHP核心技术与最佳实践>是一本致力于为希望成为中高级PHP程序员的读者提供高效而有针对性指导的经典著作.系统归纳和深刻解读了PHP开发中的编程思想.底层原理.核心技术.开发技巧.编码规范和最佳实践.全书分为5个部分:第一部分(1-2章)从不同的角度阐述了面向对象软件设计思想的核心概念.技术和原则,分析了面向对象的特性.设计模式的理念,指出了如何设计低耦合.高可扩展性的软件,等等:第二部分(3-6章)详细讲解了PHP中正则表达式的规范和使用技巧,PHP网络编程的原理.方法.技巧和一些重要的操

温习《PHP 核心技术与最佳实践》这本书

再次看这本书,顺手提炼了一下大致目录,以便后续看见目录就知道大概讲的些什么内容 PHP 核心技术与最佳实践 1.面向对象思想的核心概念 1.1 面向对象的『形』与『本』 1.2 魔术方法的应用 1.2.1 __set和 __get 方法 PHP 的重载和Java 等语言的重载不同. Java 里,重载指一个类中可以定义参数列表不同但名字相同的多个方法.比如,Java 也有构造 函数,只要保证方法签名不一样就行:而 PHP 则在一个类中只允许有一个构造函数. PHP 提供的『重载』指动态的『创建』

何俊谈阿里巴巴前端性能优化最佳实践-笔记

网站页面前端优化对网站核心页面基于Wise load的原则做定点性能优化,减少HTTP请求,减少DNS请求时间,减少页面DOM的数量,做一些图片.JS压缩等.减少HTTP请求方案:阿里开发了自动合并CSS和JS静态文件的框架,对于减少页面DNS数方面采用前端延迟加载框架,主要负责页面加载时只加载首屏,用户滚动页面时才加载二屏或三屏,这样对网站的性能包括流量都是很大的提升和节约. Web I/O(高并发)方面的优化,使用高性能Web服务器,另外在冬天页面处理上,尽可能地减少冬天页面所占比例,采用一