PHP编程

一、PHP介绍

二、语言基础

三、函数

1.函数引用参数必须是变量,不能是常量,但可以指定默认值

2.可变参数:func_get_args()、func_num_args()、fund_get_arg(argument_number)

四、字符串

1.unfirst()操作第一个字符,ucwords()操作字符串中每个单词的第一个字符

2.htmlentities(字符串,字符集,控制单引号和双引号是否变成他们的实体形式)

3.htmlspecialchars(),转换最小实体集来生成合法的HTML

4.使用get_meta_tags()可返回包含该页面中元标签(meta tag)内容的数组

5.strcmp(string_1,string_2)数字转换成字符串然后比较

6.近似相等:soundex()、metaphone()、similar_text()、levenshtein()

7.substr_count()返回小字符串在大字符串中出现的次数

8.strrev()反转字符串,str_pad()在字符串两边填充内容(反trim)

9.parse_url()返回一个由URL和各个成分组成的数组

五、数组

1.PHP中所有数组都存储为关联数组,所以关联数组和索引数组的唯一区别在于键是什么

2.range()函数用于创建一个连续整数或字符的数组,同时返回值的范围在该函数的两个参数之间

3.array_pad()用重复的值来创建一个数组

4.list()将数组的值按数组内部顺序被复制到列出的变量中,array_slice()返回一个由原始数组中的连续元素组成的新数组,array_chunk()将数组划分为小数组或固定大小的数组,array_splice()可以在数组中删除或插入元素并且可以用被删除的元素创建另一个数组

5.extract()可以自动地从一个数组中创建局部变量,数组元素的键名就是变量名,建议第二个参数使用EXTR_PREFIX_ALL

6.compact()将多个变量名或者单个数组变为一个新的数组

7.foreach操作数组的一份拷贝(操作元素安全),迭代器函数(current()、reset()、next()、prev()、end()、each()、key()、each())无拷贝节约内存

8.array_walk()为数组中的每个元素调用用户自定义的函数,自定义函数接收三个参数(值,键,被array_walk()调用时使用的值);array_reduce()将一个函数依次应用于数组的每个元素来得到单个值,函数接收两个参数(实时总数值,将要处理的当前值)

9.array_filp()数组的键值互转

10.array_sum()计算数组的和,array_merge()合并数组,array_diff()识别在一个数组中出现而不在其他数组中出现的值,array_filter()从数组中根据元素来确定一个子集

11.array_merge()和array_unique()实现集合,array_push()和array_pop()实现堆栈,array_shift()和array_unshift()实现队列

六、对象

1.class_exists()确定一个类是否存在,get_declared_classes()返回一个包含所有已定义的类的数组;get_class_methods()和get_class_vars()得到一个类中的所有属性和方法;get_parent_class()得到一个类的父类的名称;

2.is_object()确认是一个对象,get_class()函数得到它所属的类,method_exists()确认类中的方法是否存在

3.__sleep()在一个对象被序列化之前被调用,能执行一些必要的清理工作,保持对象的状态,如关闭数据库链接,输出未保存的持久性数据等

4.__weakup()方法是在一个对象从字节流中被创建时调用

七、Web技术

1.不存在的表单参数会是NULL,可以使用is_null判断

2.检测文件是否上传成功使用is_uploaded_file()

3.使用time()和gmstrftime()来生成过期日期的字符串

八、数据库

九、图像

1.imagetype()检测支持的图片类型

2.修改图片使用imagecreatefromgif()、imagecreatefromjpeg()、imagecreatefrompng()

3.加载文字:imagestring()、imagettftext()

4.图片缩放:imagecopyresized()、imagecopyresampled()

5.颜色处理:imagecolorallocate()、imagecreatetruecolor()、imagecolorallocatealpha()

6.imagecolorsforindex()返回颜色数组

https://github.com/zhangyue0503/php/blob/master/phpprogramming/9.php

十、PDF

1.fpdf、tcpdf

https://github.com/zhangyue0503/php/blob/master/phpprogramming/10.php

十一、XML

十二、安全

1.确保对所有你从远程源接收的数据进行过滤输入,越严格越安全

2.用上下文情景的方式转义输出,以确保你的数据不被远程系统误解

3.总是初始化你的变量

4.禁用register_globals、magic_quote_gpc和allow_url_jopen

5.只要构建文件名,就用basename()和realpath()检查组成

6.把包含文件存储到根目录外面,不要用.inc扩展名,直接用.php或其他常见的扩展名

7.当用户权限变更时总是调用session_regenerate_id()

8.只要构成的文件名有用户提供的成分,就要用basename()和realpath()检查组成

9.不要先创建文件再修改它的权限,使用umask()使文件用正确的权限创建

10.不要在eval()、带/e选项的preg_replace()或任何系统命令——exec()、system()、popen()、passthru()和反引号`操作符中使用“用户提供”的数据

十三、应用技术

A.处理输出

1.ob_start()打开输出缓冲

2.ob_get_length()、ob_get_contents()获取当前缓冲区的长度和内容

3.ob_clean()清理当前输出缓冲区的内容但是不会关闭后面输出的缓冲,ob_end_clean()清理并结束

4.ob_flush()输出但不终止输出、flush()清理并立即发送数据、ob_end_flush()清理并终止输出缓冲

B.优化

1.优化执行时间

  • 避免使用printf()
  • 避免在循环中重新计算值
  • 只包含必要的文件
  • 持久化数据库连接
  • 当可以用字符串函数时就不要用正则

2.优化内存占用

  • 如果可能的话,用数字代替字符串
  • 当处理完了一个大字符串,将保存字符串的变量设置为空
  • 用require_once()、include_once()
  • 处理完mysql和其他数据库结果集后立即释放

十四、不同平台的PHP

十五、网页服务

十六、调试PHP

十七、日期和时间

1.DateTime类处理日期和时间本身

2.DateTimeZone类处理时区

3.DateTimeInterval类处理两个DateTime实例间的时间跨度

4.DatePeriod类处理日期和时间特定间隔的遍历

原文发布于微信公众号 - 硬核项目经理(fullstackpm)

原文发表时间:2017-05-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券