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),作者:ZyBlog

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP中用+号连接数组的结果是?

    我们在开发中,有时候会将两个数组合并连接起来,这个时候要注意了,千万不要偷懒直接使用+号哦,为什么呢?我们看看以下代码:

    硬核项目经理
  • JavaScript编程精解(一)

    1.为了能够顺利操作非常多的位数据而又不引起数据丢失,我们可以将这些位划分成表示不同信息的块,在JS中,我们将这些数据块称为值。

    硬核项目经理
  • Vue.js权威指南

    1.MVP,从MVC演化而来,Controller/Presenter负责逻辑的处理,完全把View和Model进行了分享,主要的程序逻辑在Presenter里...

    硬核项目经理
  • PHP常用array函数

    函数名 函数作用 array_chunk 数组分割 array_column 获取数组的某一列 array_combine 两个数组分别...

    Clive
  • 算法导论之插入排序和归并排序

      作为一名前线的码农不时地看一下算法和数据结构还是很有必要的,虽然《算法导论》这本书很难啃,但还是有必要啃一下的。算法这东西和某种编程语言关系不大,在大学的课...

    lizelu
  • PHP转Go系列:数组与切片

    用过PHP的同学应该很清楚,无论多么复杂的数据格式都可以用数组来表达,什么类型的数据都可以往里塞,它是工作必备的一部分,使用很简单,易用程度简直变态。

    平也
  • php Array数组知识总结

    PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量...

    benny
  • Day13 :调整数组顺序使奇数位于偶数前面

    思路一:   根据题意可知,我们不仅要让奇数在偶数的前面,还要考虑奇数和偶数原来的相对位置不变。因此我们首先要寻找第一个奇数,并将其放在0号位置。然后将第一个...

    stefan666
  • Python3之数组(array)

    当我们需要1000万个浮点数的时候,数组(array)的效率要比列表(list)要高得多,因为数组在背后存的并不是float对象,而是数字的机器翻译,也就是字节...

    周小董
  • mongodb和php的用法详解

    查询时,每个Object插入时都会自动生成一个独特的_id,它相当于RDBMS中的主键,用于查询时非常方便 (_id每一都不同,很像自动增加的id)

    砸漏

扫码关注云+社区

领取腾讯云代金券