15.5 什么是PHP
15.5.1 PHP是什么
PHP是在Web服务器端运行的服务器端脚本。PHP全称是Hypertext Prrprocessor,它是一种用于开发Web应用程序的编程语言,支持Apache等多个Web服务器,并支持包括MySQL在内的许多RDBMS。
15.5.2 设置php.ini
php.ini是用于设置PHP动作的文本文件
在学习PHP之前,需要对php.ini配置文件设置用于处理时间、时间和时区,以及多字节字符串的相关内容。
- 设置时区
在MAMP的PHP中,时区的默认值是UTC(世界标准时间),和北京时间相差8小时。因此如果使用时间函数,显示的时间就会出现偏差,所以需要重置时区。
使用文本编辑器打开php.ini(C:\MAMP\conf\php7.1.5)文件,删除第703行附近的“;date.timezone =”开头的“;”,并将值设置为Asia/Shanghai。
- 设置多字节字符串
本学习内容中使用的PHP7.1.5中,字符编码默认设置为UTF-8,所以不需要对字符编码进行设置。动态生成的字符串将自动以UTF-8进行输出。
但是当处理中文时,如果不进行多字节字符串(汉字等2个字节以上的字符串)的相关设置,在函数的返回值包含中文的情况下就可能会出现乱码。
删除php.ini文件第1232行附近的“;mbstring.language = Japanese”,开头的“;”,并将Japanese改为Chinese.
完成修改后保存php.ini,重启服务器。
15.6 首先显示“欢迎光临!”
15.6.1 确认Apache是否启动
在浏览器的地址地址栏中输入http://localhost/MAMP,然后按Enter键。显示如下画面,证明Apache已开启。
注:localhost(localhost_百度百科 (baidu.com))的IP地址通常被指定为“127.0.0.1”。也就是说,在常规设置中,输入http://127.0.0.1/MAMP也会显示上面的画面。
15.6.2 首先用PHP显示“欢迎光临!”
- 使用哪个文本编辑器
使用支持UTF-8的编辑器创建PHP脚本。在本学习中,PHP脚本和HTML的字符编码使用了UTF-8。
由GitHub开发的Atom将UTF-8作为默认的字符编码,当编写PHP程序时可以使用代码辅助功能,非常方便。下载地址:原子 (atom.io)
Atom画面如下所示
在右下角可以选择字符编码以及PHP的代码辅助功能。
练习:创建一个PHP脚本,输入以下内容
<?php
print"欢迎光临!";
?>
将创建好的文本保存在Web服务器发布的文件夹中。存储的位置会根据Apache的设置发生编码,在本书的环境中为:C:\MAMP\htdocs文件夹。今后要创建的PHP脚本也会保存在这里。
保存好后就可以执行PHP脚本了。在浏览器的地址栏中输入如下内容,test.php就能运行了。
http://localhost/test.php
15.6.3 没有正常显示时的解决对策
PHP不能正常运行的原因主要有以下几种
- 拼写错误
- 输入了全角空格
- 不是可以使用PHP的环境
确保Apache是启动状态
- 保存在不同的文件夹中
Apache发布的文件夹是固定的。但是这个发布的文件夹会根据环境的不同而发生变化。
- 扩展名不是".php"
- 字符乱码
确定字符编码格式为UTF-8。
15.7 使用PHP
15.7.1 编写PHP脚本时需要遵循的规则
- PHP脚本文件的扩展名时“.php”
- PHP脚本以“<?php”开始,以“?>”结束
PHP脚本也可以包含在HTML文件中。即使PHP脚本与HTML的描述掺杂在一起,我们也可以通过“<?php”和“?>”知道哪部分是php脚本。
- 在尾行加上“;”
如果是test.php这种只有一行脚本的文件,即使不加上“;”也能正常运行。
- 字符串数据使用" "或' '括起来
在PHP中用" "括起来的变量能够被解析,但如果用' '扩起来就不能被解析了:在PHP中双引号中的变量和特殊字符(\n \r 等)会被转义,而单引号中的内容总被认为是普通字符,不会被转义。
15.7.3 执行了什么处理
上一节中的处理机制
- 访问test,php文件
首先,在浏览器的地址栏中输入http://XXXX/test.php,访问test.php文件。收到请求的Web服务器会执行test.php。
- Web服务器进行处理并返回结果
在练习中,时机隐形的是“print "欢迎光临!";”的部分。print是用于显示字符串的命令。也就是说,收到这个命令的Web服务器将字符串“欢迎光临!”发送到客户端的浏览器。于是,浏览器便显示出了“欢迎光临!”。
插入HTML标签
要想显示字符串,就需要使用print,HTML标签也和字符串一样可以通过print显示出来。
例如,<br>是表示换行的HTML标签。
练习:test.php脚本中,在字符串“欢迎光临!”之后,通过HTML标签<br>进行换行,然后显示“SQL咖啡厅!”。
<?php
print"欢迎光临!";
print"<br>";
print"SQL咖啡厅!";
?>
执行:
15.7.3 注释的写法
- 如果代码以“//”或“#”开头,则该行不会执行任何操作
- 如果代码在“/*”和“*/”之间,则该部分不执行任何操作
15.7.4 phpinfo函数
PHP函数后面的()中要写上传递给函数的参数。在这种情况下,即使函数没有参数也必须要加上(),这一点与MySQL的函数相同。
练习:将执行phpinfo函数的PHP脚本文件命名为info.php并保存在发布的目录中。在地址栏中输入http://localhost/info.php.
<?php
phpinfo();
?>
执行结果: