PHP

来自开放百科 - 灰狐
跳转到: 导航, 搜索

Php-90x90.png

PHP

Zend logo small.gif
Pear-icon.gif
Pecl-icon.gif
LAMP stack

目录

简介

PHP是一种服务器端脚本语言,它是专门为Web而设计的.在一个HTML页面中,你可以嵌入PHP代码,这些代码在每次页面被访问时执行.PHP代码将在Web服务器中被解释并且生成HTML或访问者看到的其他输出.

PHP是1994年出现的,15最初只是Rasmusc Lerdorf一个人的工作.其他一些天才改进了这种语言,它经历了四次非常重要的重新编写,才变成了我们今天所看到的广为使用的.成熟的PHP.到2004年8月,PHP已经在全球的1700多万个网站域中安装,而且该数字还在不断地快速增长.

访 http://www.php.net/usage.php 站点,你可以获得当前的确切数据.

PHP是一个开放源代码的产品,这就意味着,你可以访问其源代码,也可以免费使用.修改并且再次发布.

PHP最初只是PersonalcHomecPage(个人主页)的缩写,但是后来经过修改,采用了GNU命名惯例(GNUc=Gnu Not Unix),如今它是PHP超文本预处理程序的缩写.

前,PHP的主要版本是5.该版本的Zend引擎经过了完全的重写,而且还实现了一些主要的语言改进.

Zend是专业的PHP公司,开发了PHP语言的核心引擎

Rasmus Lerdorf.jpg Rasmus Lerdorf: PHP 之父

  • PEAR - PHP Extension and Application Repository
  • PECL is a repository for PHP Extensions
  • 将 PHP 带入企业级应用: Enterprise PHP

新闻

Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 PHP Thanks, Wikipedia.

2022 PHP Landscape Report

  • 此报告是对 PHP 开发专业人士的行业调查结果,讨论了 PHP 生态系统中的技术、趋势和挑战。
  • PHP 7 占最大的市场份额,PHP 8 也有大量采用。
  • PHP 正确迁移路线:PHP 5 -> PHP 7 -> PHP 8
  • WordPress 是 PHP 生态系统中最重量级项目,占整个市场 44.16%,紧随其后 Drupal 16.88%,WooCommerce 以15%排在第三位。可以说 WordPress 占据整个 PHP 市场半壁江山。
  • Apache 是 PHP 最佳伴侣,

语言规范

PHP 8

PHP 8.1

PHP7

PHP6

新特征:

  • 1、支持Unicode。Unicode是有其必然,虽然Unicode占用较多的空间,但Unicode带来的便利性,远超过占用空间的缺点,尤其在国际化的今天,硬件设备越来越强大,网速也大幅度的提升,这么一点小小的缺点是可以忽略的。另外一点,PHP也可以在.ini文件中设定能不能开启支持Unicode,决定权在你自己,这是一个不错的点子,关掉Unicode的支持,PHP的性能并不会有大幅度的提升,主要的影响在于需要引用字符串的函数。
  • 2、Register Globals 将被移除这是一个主要的决定,老的PHP使用者会觉得Register Globals蛮方便的,但是却忽略了Register Globals会带来程序上安全性的隐患,大多数的主机上此项功能是关闭的,印象中从PHP4.3.x版开始,此项默认配置值即是关闭状态,PHP6正式移除Register Globals也代表着如果程序是PHP3时代的产物,将完全不能运用,除了改写用途外,别无他法。
  • 3、Magic Quotes 将取消Magic Quotes主要是自动转义须要转义的字符,此项功能移除也符合大多数PHP开发者的心声。
  • 4、Safe Mode 取消。老实说,这个模式不知道哪里不好,取消就取消吧,反正也用不到。
  • 5、’var’ 别名为 ‘public’,在类中的var声明变成public的别名,相信是为了兼容PHP5而作的决定,PHP6现在也可以称作为OO语言了。
  • 6、通过引用返回将出错未来通过引用返回编译器将会报错 例如$a =& new b()、function &c(),OO语言默认就是引用,所以不须要再运用 &了。
  • 7、zend.ze1 compatbility mode 将被移去(Zend.ze1相容模式将被移去),PHP5是为兼容旧有PHP4,所以在.ini中可选择是否开启相容模式,原由在于PHP5运用的是第二代分析引擎,但是相容模式并不是百分之百能分析 PHP4语法,所以旧时代的产物,移除。
  • 8、Freetype 1 and GD 1 support 将不见这两个Libs存在了很久,php6将不再支持,况且GD1早已被现在的GD2取代了。
  • 9、dl() 被移到 SAPI 中dl()主要是让设计师加载extension Libs,现在被移到 SAPI 中。
  • 10、Register Long Array 去除 从PHP5起默认是关闭,在PHP6中正式移除。
  • 11、一些Extension的变更例如 XMLReader 和 XMLWriter 将不再是以Extension的方式出现,他们将被移入到PHP的核心之中,并且默认是开启,eregextension将被放入PECL,代表着它将被移出PHP核心,这也是为了让路给新的正则表达式extension,此外,Fileinfo extension 也将被导入PHP的核心之中。
  • 12、APC将被导入核心这是一个提高PHP性能的功能,现在它将被放入PHP核心中,并且可以选择是否启用APC。
  • 13、告别ASP风格的起始标签原来是为了取悦ASP开发者转向运用 PHP,现今已经不再须要这种做法了。

PHP5

自 PHP 5 起完全重写了对象模型以得到更佳性能和更多特性。这是自 PHP 4 以来的最大变化。PHP 5 具有完整的对象模型。

PHP 5 中的新特性包括访问控制,抽象类和 final 类与方法,附加的魔术方法,接口,对象复制和类型约束。

PHP 对待对象的方式与引用和句柄相同,即每个变量都持有对象的引用,而不是整个对象的拷贝。详见:类与对象

PHP4

Zend Engine 1是PHP 4所有版本使用的内部引擎。它的维护已停止,但是PHP 4仍然在被广泛使用中。

编译

./configure --prefix=/usr/local/php5 --enable-fastcgi --enable-fpm --with-mcrypt --with-zlib --enable-mbstring --disable-pdo --with-pgsql --with-curl --disable-debug --enable-pic --disable- rpath --enable-inline-optimization --with-bz2 --with-xml --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with- mhash --enable-xslt --enable-memcache --enable-zip --with-pcre-regex

iconv

iconv -f gb2312 -t utf-8 -c forum-gb2312.sql > forum-utf8.sql 
ok, cool :)

Eclipse

使用 Aptana 进行 PHP 应用开发。

项目

PHP MVC

编译器虚拟机

PHP编译器、虚拟机

Pear

安装 Pear

download http://pear.php.net/install-pear.phar to php-src/pear/ 
# make install-su

Pecl

The PHP Extension Community Library contains PHP extensions written in C.

PHP 设计模式

  • 工厂模式

Php factory.gif

  • 单体模式

Php singleton.gif

  • 观察者模式

Php observer.gif

  • 命令链模式

Php chain.gif

  • 策略模式

Php strategy.gif

更多细节: http://www-128.ibm.com/developerworks/cn/opensource/os-php-designptrns/

PHP 与 AJAX

数据库

文档

Windows

Debian

How To Install PHP 7.3 on Debian 9 / Debian 8

/etc/cron.d/php4

# Look for and purge old sessions every 30 minutes
09,39 *     * * *     root   [ -d /var/lib/php4 ] && find /var/lib/php4/ -type f -cmin +$(/usr/lib/php4/maxlifetime) -print0 | 
xargs -r -0 rm

游戏

包管理

Packagist

RPM repository

Remi's RPM repository

How to Install PHP 7.4 on CentOS 8 / RHEL 8

$ sudo dnf install epel-release -y
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
$ dnf module list php
$ sudo dnf module enable php:remi-7.4
$ sudo dnf install php php-cli php-common
$ php -v
$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
$ sudo vi /etc/php.ini
$ sudo systemctl restart httpd

图集

链接

相关书籍

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱