- 介绍
- 本地环境安装
- 安装 WNMP 环境
- 代码编辑器选择
- 语法
- 变量与常量
- 常见输出函数
- 数据类型之四种标量类型
- 数据类型之三种复合类型
- 数据类型之两种特殊类型
- Operators:运算符
- 流程控制:条件判断语句
- 流程控制:循环语句
- 流程控制:中止语句
- 函数
- 类和对象:基本概念
- 类和对象:类结构
- 类和对象:面向对象
- 类和对象:三种特殊类
- 类和对象
- 类和对象:Trait
- 类和对象:魔术方法
- 命名空间
- 【实战】PHP表单
-
String
- addcslashes()
- addslashes()
- bin2hex()
- chop()
- chr()
- chunk_split()
- convert_cyr_string()
- convert_uudecode()
- convert_uuencode()
- count_chars()
- crc32()
- crypt()
- echo
- explode()
- fprintf()
- get_html_translation_table()
- hebrev()
- hebrevc()
- hex2bin()
- htmlentities()
- htmlspecialchars()
- htmlspecialchars_decode()
- html_entity_decode()
- implode()
- join()
- lcfirst()
- levenshtein()
- localeconv()
- ltrim()
- md5()
- md5_file()
- metaphone()
- money_format()
- nl2br()
- nl_langinfo()
- number_format()
- ord()
- parse_str()
- printf
- quoted_printable_decode()
- quoted_printable_encode()
- quotemeta()
- rtrim()
- setlocale()
- sha1()
- sha1_file()
- similar_text()
- soundex()
- sprintf()
- sscanf()
- strcasecmp()
- strchr()
- strcmp()
- strcoll()
- strcspn()
- stripcslashes()
- stripos()
- stripslashes()
- strip_tags()
- stristr()
- strlen()
- strnatcasecmp()
- strnatcmp()
- strncasecmp()
- strncmp()
- strpbrk()
- strpos()
- strrchr()
- strrev()
- strripos()
- strrpos()
- strspn()
- strstr()
- strtok()
- strtolower()
- strtoupper()
- strtr()
- str_getcsv()
- str_ireplace()
- str_pad()
- str_repeat()
- str_replace()
- str_rot13()
- str_shuffle()
- str_split()
- str_word_count()
- substr()
- substr_compare()
- substr_count()
- substr_replace()
- trim()
- ucfirst()
- ucwords()
- vfprintf()
- vprintf()
- vsprintf()
- wordwrap()
-
Array
- array()
- array_change_key_case()
- array_chunk()
- array_column()
- array_combine()
- array_count_values()
- array_diff()
- array_diff_assoc()
- array_diff_key()
- array_diff_uassoc()
- array_diff_ukey()
- array_fill()
- array_fill_keys()
- array_filter()
- array_flip()
- array_intersect()
- array_intersect_assoc()
- array_intersect_key()
- array_intersect_uassoc()
- array_intersect_ukey()
- array_keys()
- array_key_exists()
- array_key_first()
- array_key_last()
- array_map()
- array_merge()
- array_merge_recursive()
- array_multisort()
- array_pad()
- array_pop()
- array_product()
- array_push()
- array_rand()
- array_reduce()
- array_replace()
- array_replace_recursive()
- array_reverse()
- array_search()
- array_shift()
- array_slice()
- array_splice()
- array_sum()
- array_udiff()
- array_udiff_assoc()
- array_udiff_uassoc()
- array_uintersect()
- array_uintersect_assoc()
- array_uintersect_uassoc()
- array_unique()
- array_unshift()
- array_values()
- array_walk()
- array_walk_recursive()
- arsort()
- asort()
- compact()
- count()
- current()
- each()
- end()
- extract()
- in_array()
- key()
- key_exists()
- krsort()
- ksort()
- list()
- natcasesort()
- natsort()
- next()
- pos()
- prev()
- range()
- reset()
- rsort()
- shuffle()
- sizeof()
- sort()
- uasort()
- uksort()
- usort()
-
File
- basename()
- chgrp()
- chmod()
- chown()
- clearstatcache()
- copy()
- dirname()
- diskfreespace()
- disk_free_space()
- disk_total_space()
- fclose()
- feof()
- fflush()
- fgetc()
- fgetcsv()
- fgets()
- fgetss()
- file()
- fileatime()
- filectime()
- filegroup()
- fileinode()
- filemtime()
- fileowner()
- fileperms()
- filesize()
- filetype()
- file_exists()
- file_get_contents()
- file_put_contents()
- flock()
- fnmatch()
- fopen()
- fpassthru()
- fputcsv()
- fputs()
- fread()
- fscanf()
- fseek()
- fstat()
- ftell()
- ftruncate()
- fwrite()
- glob()
- is_dir()
- is_executable()
- is_file()
- is_link()
- is_readable()
- is_uploaded_file()
- is_writable()
- is_writeable()
- lchgrp()
- lchown()
- link()
- linkinfo()
- lstat()
- mkdir()
- move_uploaded_file()
- parse_ini_file()
- parse_ini_string()
- pathinfo()
- pclose()
- popen()
- readfile()
- readlink()
- realpath()
- realpath_cache_get()
- realpath_cache_size()
- rename()
- rewind()
- rmdir()
- set_file_buffer()
- stat()
- symlink()
- tempnam()
- tmpfile()
- touch()
- umask()
- unlink()
-
Datetime
- checkdate()
- date()
- date_add()
- date_create()
- date_create_from_format()
- date_date_set()
- date_default_timezone_get()
- date_default_timezone_set()
- date_diff()
- date_format()
- date_get_last_errors()
- date_interval_create_from_date
- date_interval_format()
- date_isodate_set()
- date_modify()
- date_offset_get()
- date_parse()
- date_parse_from_format()
- date_sub()
- date_sunrise()
- date_sunset()
- date_sun_info()
- date_timestamp_get()
- date_timestamp_set()
- date_timezone_get()
- date_timezone_set()
- date_time_set()
- getdate()
- gettimeofday()
- gmdate()
- gmmktime()
- gmstrftime()
- idate()
- localtime()
- microtime()
- mktime()
- strftime()
- strptime()
- strtotime()
- time()
- timezone_abbreviations_list()
- timezone_identifiers_list()
- timezone_location_get()
- timezone_name_from_abbr()
- timezone_name_get()
- timezone_offset_get()
- timezone_open()
- timezone_transitions_get()
- timezone_version_get()
-
Filter
-
HTTP
-
cURL
- curl_close()
- curl_copy_handle()
- curl_errno()
- curl_error()
- curl_escape()
- curl_exec()
- curl_file_create()
- curl_getinfo()
- curl_init()
- curl_multi_add_handle()
- curl_multi_close()
- curl_multi_errno()
- curl_multi_exec()
- curl_multi_getcontent()
- curl_multi_info_read()
- curl_multi_init()
- curl_multi_remove_handle()
- curl_multi_select()
- curl_multi_setopt()
- curl_multi_strerror()
- curl_pause()
- curl_reset()
- curl_setopt()
- curl_setopt_array()
- curl_share_close()
- curl_share_errno()
- curl_share_init()
- curl_share_setopt()
- curl_share_strerror()
- curl_strerror()
- curl_unescape()
- curl_version()
-
PDO
-
PDOStatement
本地环境安装
工欲善其事,必先利其器。学习一门开发语言必须准备其本地开发环境,才能进行相关代码的编写、测试与运行。 PHP本地开发环境的安装有两种形式:
- PHP 压缩包直接解压配置。(如果需要与浏览器进行交互,则还需要配置
Apache
/Nginx
环境) - *MAP 类集成环境软件:在Windows下主要有
WAMP Server
、XAMPP
和MAMP
1. PHP直接安装
对于爱折腾也想要体验开发环境搭建的朋友,可以选择去PHP官网下载操作系统相应版本的压缩包,如下图:
始终建议下载最新版本的安装包。这里预先安装使用的是PHP 7.3.7 版本。
PHP 压缩包下载完成后,解压至 D 盘的dev
目录(任何你喜欢的目录都可以),并重命名为php
。
好的,现在我们的 PHP 安装包已经解压完成。接下来进行一些简单的配置。
打开 php 安装目录,找到名为php.ini-development
的文件,复制,粘贴在此目录,并重命名为php.ini
。这将是我们的PHP配置文件。
使用文本编辑器打开php.ini
文件,不同版本的PHP配置文件可能稍有不同,但影响不大。修改以下配置:
- ~738行:
extension_dir = "./ext"
- ~945行:
date.timezone = Asia/Shanghai
其余配置暂时用不到,不做修改。然后将PHP安装目录加入系统的环境变量。
- 右键选择
此电脑
,选择属性
,进入系统信息面板; - 选择左侧的
高级系统设置
,进入系统属性面板。选择环境变量
按钮,进入环境变量面板。如下:
添加环境变量完成后,打开命令行工具,输入:php -v
如果正确输出PHP版本信息则说明 PHP 安装正确!
2. 集成环境安装
使用集成环境软件可以帮助我们减少配置运行环境的时间,更加专注于代码的编写。
2.1 WAMP Server
WampServer
是 Windows 上的 Web 开发平台,包含Apache2
,PHP
,MySQL
和MariaDB
。下载地址
安装过程几乎只需一直点击下一步,如下图所示:
-
选择安装时界面语言
-
选择安装位置
-
选择默认浏览器:首推 Chrome,其次 Firefox
-
启动所有服务
-
进入本地服务器:在浏览器中输入
localhost
WampServer 通过点击操作可以配置各种环境参数,基本不需要修改配置文件。
2.2 XAMPP
XAMPP
是一个易于安装的 Apache 发行版,包含Apache
,MariaDB
,PHP
和Perl
。下载地址
安装时一路点击 Next 即可,如下图所示:
-
选择安装应用(选择需要的,后续还可以更改。如不知道需要哪些可以先全选)
-
选择安装位置
-
XAMPP 主界面
-
进入本地服务器:点击 XAMPP 主界面 Apache 栏的 Admin 按钮
XAMPP 的配置信息仍需要手动修改,不如 WAMP 直观。安装后无法选择各环境的版本(仅下载安装包时可选)。但相比于 WAMP Server,XAMPP 在 Windows、Linux 和 macOS 上都有相应的安装包。
2.3 MAPP
MAMP
是一个免费的、可在 Windows、macOS 两种操作系统上安装的本地服务环境。下载地址。
因为 MAPP 最开始只支持 macOS 系统,故 Windows 版本会比 macOS 版本要低。
其中,MAMP 支持Apache
和Nginx
两种web服务,并且配置比前二者简单,不需要修改配置文件。如果是不喜欢折腾的朋友,可以优先考虑 MAMP 作为本地开发环境。
下载时 MAMP 与 MAMP Pro 是一起下载的,Pro 版本需要付费,但用普通版就足够了,安装时不勾选“Pro”版本即可。
截至2019年7月3日,MAMP 普通版 PHP 版本只有 7.1 和 7.2 两个版本可供选择,对于日常开发足够;而 MySQL 版本不可选择,只有 5.7 版本。
MAMP 普通版的可配置性不高,但仅作为 PHP 入门开发是足够的。
2.4 WNMP
WAMP 与 XAMPP 都是使用 Apache 作为 web 服务器,而 MAMP 虽然可以选择 Nginx 作为服务器,但普通版过于简陋。
而 WNMP 是 Windows、Nginx、MariaDB (类似 MySQL )和 PHP 的首字母缩写,意为这三种服务在 Windows 下的集成安装包。本教程将使用 WNMP 软件集成包作为开发环境,在公众号中回复“ WNMP ”即可获得下载链接。
3. 安装Web服务器
PHP 主要用于web动态网站的开发,不可避免地我们需要一个 web 服务以供我们的 PHP 文件能够在浏览器中运行。目前流行的两种 web 服务是Apache和Nginx。
如果已使用集成环境,可以省去手动安装 Apache 的时间。如果只安装了 PHP ,那么请手动下载安装你想要的服务器(Apache/Nginx)。
Apache安装
-
Apache 下载地址:https://www.apachehaus.com/cgi-bin/download.plx
-
选择合适的版本,并解压文件至目录
D:\dev\apache
(或者其他你喜欢的目录) -
使用文本编辑器打开
conf
目录下的httpd.conf
文件,并修改以下地方:- ~38行:
Define SRVROOT "/Apache"
改为Define SRVROOT "D:\dev\apache"
- 在文件末尾添加以下代码,说明 PHP 的 Apache 模块位置及 PHP 配置文件所在目录(笔者这里为
D:/dev/php/php7apache2_4.dll
和D:/dev/php
LoadModule php7_module "D:/dev/php/php7apache2_4.dll" PHPIniDir "D:/dev/php"
- ~38行:
-
使用命令行工具进入 Apache 安装目录的
bin
目录,键入以下命令,开始安装 Apache 服务:- 安装 Apache 服务
httpd.exe -k install -n apache
- 启动 Apache 服务
net start apache
-
启动 Apache 完成后,在浏览器输入 localhost 后可看到如下界面(不同版本的 Apache 欢迎界面不同):
Nginx安装
- Nginx 下载地址:https://nginx.org/en/download.html
- 解压文件至目录
D:\dev\nginx
-
双击
nginx.exe
即可启动 Nginx
Web服务器开启PHP
在 Apache 服务器中,PHP 可以作为一个模块被开启,在安装 Apache 时我们已经配置好 PHP 模块的说明。在 Apache 默认的服务器根目录(Apache安装目录的htdocs
文件夹,这里是D:\dev\apache\htdocs
)中添加一个名为info.php
的文件,代码如下,用以检验 PHP 在 Apache 服务器是否成功开启:
<?php
phpinfo();
在 Nginx 服务器中配置 PHP 较为麻烦,并且 PHP 运行窗口不能关闭(一旦关闭,PHP 将无法在 Nginx 服务器上使用)。
关于 Nginx 和 MySQL 的安装,我们在下一章WNMP安装
中进行了详细说明。
接下来我们就可以开始 PHP 学习之旅了!
一切,从 Hello,world 开始
在某个你喜欢的目录下新建一个文本文件,命名为hello.php
,并使用代码编辑器(Sublime Text
、VS Code
或者Notepad++
,甚至是记事本)输入以下内容:
<?php
echo 'Hello, World!';
保存,在命令行中进入hello.php
所在的目录,笔者这里是E:\tutorial\code\hello.php
,运行php hello.php
,如图:
将hello.php
复制到你的网站根目录,在浏览器中运行结果: