🍁博主简介:
🏅云计算领域优质创作者
🏅新星计划第三季python赛道第一名
🏅阿里云ACE认证高级工程师
🏅阿里云开发者社区专家博主
✒️博主微信:15575411187
💊交流社区:小鹏linux(个人社区)欢迎您的加入!
目录
1. 关于PHP
PHP(Hypertext Preprocessor,超文本预处理器)是一种通用的开源脚本语言。语法吸收了C、Java和Perl等语言的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP执行效率比完全生成HTML标记的CGI 要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。 |
2. PHP语言特点
1)开源免费
PHP是一个受众大并且拥有众多开发者的开源软件项目,Linux + Nginx + Mysql + PHP是它的经典安装部署方式,相关的软件全部都是开源免费的,所以使用PHP可以节约大量的正版授权费用。不过PHP作为一个开源软件,它缺乏大型科技公司的支持背景,网络上对它的唱衰也是经久不衰,不过它的持续迭代和性能持续增强的现实却是鼓舞人心的,PHP社区用实际行动给予各种质疑强有力的回击。 |
2)快捷高效
PHP的内核是C语言编写的基础好效率高,可以用C语言开发高性能的扩展组件;PHP的核心包含了数量超过1000的内置函数,功能应有尽有很全面,开箱即用程序代码简洁; PHP数组支持动态扩容,支持以数字、字符串或者混合键名的关联数组,能大幅提高开发效率; PHP是一门弱类型语言,程序编译通过率高,相对其他强类型语言开发效率快;PHP天然热部署,在php-fpm运行模式下代码文件覆盖即完成热部署;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 运算符以及对类型系统、错误处理和一致性的改进。PHP拥有自己的核心开发团队,保持5年发布一个大版本、1个月发布2个小版本的频率,最新的版本是PHP8.08 。PHP 7.0.0 发布于2015-12-03,此版本下最新版本是PHP 7.4.21 (发布日期:2021-07-01),PHP 8.0.0 发布于2020-11-26,此版本下最新版本是PHP 8.0.8(发布日期:2021-07-01) |
4)跨平台
每个平台都有对应的php解释器版本,指针对不同平台均编译出目标平台的二进制码(PHP解释器),php开发的程序可以不经修改运行在windows、linux、unix等多个操作系统上。 |
5)常驻内存
6)页面生命周期
在php-fpm模式下,所有的变量都是页面级的,无论是全局变量还是类的静态成员,都会在页面执行完毕后被清空,对程序员水平要求低,占用内存非常少,特别适合中小型系统的开发 |
3. PHP内置函数
PHP 有很多标准的函数和结构。还有一些函数需要和特定的扩展模块一起编译,否则在使用它们的时候就会得到一个致命的“未定义函数”错误。例如,要使用 image 函数中的 imagecreatetruecolor(),需要在编译 PHP 的时候加上 GD 的支持。或者要使用 mysqli_connect() 函数,就需要在编译 PHP 的时候加上 MySQLi 支持。有很多核心函数已包含在每个版本的 PHP 中如字符串和变量函数。调用 phpinfo() 或者 get_loaded_extensions() 可以得知 PHP 加载了那些扩展库。同时还应该注意,很多扩展库默认就是有效的。 |
在PHP编程里需要注意用户的输入安全,对用户各个方面的输入都要做好相关的过滤处理,内置函数里提供了不少的安全相关的函数,编程学习者需要重点掌握以下的7个重点函数如下表格: |
用户输入安全的7个内置函数
函数名称 | 用途简介 |
htmlentities | 将字符转换为 HTML 转义字符 |
htmlspecialchars_decode | 将特殊的 HTML 实体转换回普通字符 |
htmlspecialchars | 将特殊字符转换为 HTML 实体 |
nl2br | 在字符串所有新行之前插入 HTML 换行标记 |
str_replace | 子字符串替换 |
strip_tags | 从字符串中去除 HTML 和 PHP 标记 |
stripslashes | 反引用一个引用字符串 |
4. PHP版本记录
5. 在Docker中部署运行PHP
1.使用官方镜像
第一步,在PHP项目的根目录中新建一个Dockerfile: |
FROM php:5.6-cliCOPY . /usr/src/myappWORKDIR /usr/src/myappCMD [ "php", "./hello.php" ]
新建hello.php文件: |
第二步,运行docker build命令构建镜像: |
$ docker build -t php-image .
最后,执行以下命令去运行Docker镜像: |
$ docker run -it --rm --name php-container php-imagehello php
2.挂载PHP项目
如果大家需要运行简单的,甚至单文件的PHP项目,那么每次都写Dockerfile会很麻烦。这种情况下,可以用以下命令挂载PHP项目: |
$ docker run -it --rm --name my-running-script -v "$(pwd)":/usr/src/myapp -w/usr/src/myapp php:5.6-cli php your-script.php
3.配合Apache使用
通常情况下,PHP项目需要和Apache httpd/Nginx一起运行,这样就需要PHP容器中内含Apache Web Server。读者可以使用带有apache标签的镜像,如php:5.6-apache。 |
第一步,在读者的PHP项目的根目录中新建一个Dockerfile,并使用Docker Hub官方的基础镜像: |
FROM php:5.6-apacheCOPY src/ /var/www/html/
其中,src/是当前包含所有PHP代码的目录。 第二步,使用此Dockerfile构建自定义镜像: |
$ docker build -t my-php-app .
第三步,创建并运行此镜像: |
$ docker run -it --rm --name my-running-app my-php-app
建议大家添一个自定义的php.ini配置文件,将其拷贝 到/usr/local/lib。这样读者可以对PHP项目做更多的定制化,如开启某些PHP插件,或者对PHP解释器进行一些安全/性能相关的配置。添加方法很简单: |
FROM php:5.6-apacheCOPY config/php.ini /usr/local/lib/COPY src/ /var/www/html/
提示
src/是当前存放PHP代码的文件夹,config/文件夹包含php.ini文件 |
如果大家希望直接使用官方镜像运行PHP项目,可以执行如下命令: |
$ docker run -it --rm --name my-apache-php-app -v "$(pwd)":/var/www/html php:5.6-apache
👑👑👑结束语👑👑👑
来源地址:https://blog.csdn.net/qq_62294245/article/details/127440135