PHP 编程技术、程序设计以及源码范例

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。 PHP同时支持面向对象和面向过程的开发,使用上非常灵活。

PHP 是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。

PHP 经过二十多年的发展,随着php-cli相关组件的快速发展和完善,PHP已经可以应用在 TCP/UDP服务、高性能Web、WebSocket服务、物联网、实时通讯、游戏、微服务等非 Web 领域的系统研发。

 

1. PHP 发展历程

PHP是一个拥有众多开发者的开源软件项目,最开始是 Personal Home Page 的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。PHP是在1994年由Rasmus Lerdorf创建的,最初只是一个简单的用Perl语言编写的统计他自己网站访问者数量的程序。后来重新用C语言编写,同时可以访问数据库,1995年,PHP(Personal Home Page Tools)对外发表第一个版本PHP1。此后,越来越多的网站开始使用PHP,并且强烈要求增加一些特性,如循环语句和数组变量等,1995年发布的PHP2加入了对mSQL的支持。

PHP5于2004年7月正式发布,它的核心是Zend引擎2代(PHP7是Zend加强版3代),引入了新的对象模型和大量新功能,开始支持面向对象编程。

2020-11-26发布了PHP8。和php7系列相对比,PHP8对各种变量判断和运算采用更严格的验证判断模式,这点有利后续版本对jit的性能优化。

 

2. PHP 语言特点

1) 开源免费

PHP是一个受众大并且拥有众多开发者的开源软件项目,Linux + Nginx + Mysql + PHP是它的经典安装部署方式,相关的软件全部都是开源免费的,所以使用PHP可以节约大量的正版授权费用。

2) 快捷高效

PHP的内核是C语言编写的基础好效率高,可以用C语言开发高性能的扩展组件;PHP的核心包含了数量超过1000的内置函数,功能应有尽有很全面,开箱即用程序代码简洁;PHP数组支持动态扩容,支持以数字、字符串或者混合键名的关联数组,能大幅提高开发效率;PHP经过20多年的发展,在互联网上可以搜到海量的参考资料供参考学习。

3) 性能提升

PHP版本越高它的整体性能越高,根据官方介绍,PHP7.0.0 对比PHP5.6性能就提升了2倍,PHP7.4已经比PHP7.0快了约30%,PHP8.0在性能上又相对PHP7.4大约改进了10%。PHP 8.0 引入了 JIT编译器特性,同时加入多种新的语言功能,例如命名参数、联合类型、注解、Constructor Property Promotion、match 表达式、nullsafe 运算符以及对类型系统、错误处理和一致性的改进。

4) 跨平台

每个平台都有对应的php解释器版本,指针对不同平台均编译出目标平台的二进制码(PHP解释器),php开发的程序可以不经修改运行在windows、linux、unix等多个操作系统上。

5) 常驻内存

php-cli模式下可以实现程序常驻内存,各种变量和数据库连接都能长久保存在内存实现资源复用,比较常用的做法是结合swoole组件编写cli框架。

6) 页面生命周期

在php-fpm模式下,所有的变量都是页面级的,无论是全局变量还是类的静态成员,都会在页面执行完毕后被清空,对程序员水平要求低,占用内存非常少,特别适合中小型系统的开发。

 

3. PHP 语言特点

PHP常见的运行模式有2种,分别是php-fpm 和php-cli。当PHP 选择运行在php-fpm模式下,所有的变量都是页面级的,无论是全局变量还是类的静态成员,都会在页面执行完毕后被清空。运行在php-cli模式下可以实现程序常驻内存,各种变量和数据库连接都能长久保存在内存实现资源复用,性能可以得到很大的提升。

 

4. PHP 常见框架

1) ThinkPHP

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,最早诞生于2006年初,遵循Apache2开源协议发布。秉承简洁实用、出色的性能和至简的代码、注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。

2) Laravel

Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个不错的网络APP,而且每行代码都可以简洁、富于表达力。

3) Drupal

Drupal诞生于2000年 ,是一个基于PHP语言编写的开发型CMF(内容管理框架),即:CMS+ framework。Drupal的架构由三大部分组成:内核、模块、主题。三者通过Hook机制紧密的联系起来。可自由配置,能支持从个人博客到大型社区驱动的网站等各种不同应用的网站项目。

4) easyswoole

EasySwoole是一款常驻内存型的国产分布式swoole框架,支持同时混合监听HTTP、WebSocket、自定义TCP、UDP协议,且拥有丰富的组件,例如协程 连接池、协程Kafka客户端、协程ElasticSearch客户端、、协程Redis客户端、协程自定义队列、 协程Memcached客户端、协程HTTP客户端、Crontab定时器等。

php正则去除内容中的图片:方法说明1、首先创建一个PHP示例文件2、然后通过“preg_replace('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]...>;”方法 ...