运行PHP代码

由于PHP这门编程语言不够优雅,以及用途比较狭窄,因此有很多程序员经常吐槽PHP,戏谑其为“世界上最好的语言”,但必须承认的是PHP是最易学且最易做出实际项目的开发语言,互联网大部分的网站和App的后端都是使用PHP开发的,因此它就业需求量也非常大。

PHP开发环境的搭建

要搭建一套完整的PHP环境,我们需要部署LNMP(Linux+Nginx+MySQL+PHP+常用的PHP模块)或者LAMP(Linux+Apache+MySQL+PHP+常用的PHP模块)。前者我们已经在网站建设的技术工坊里讲过啦,后者我们在数据库的技术工坊里是使用XAMPP搭建的,大家可以回头复习一下。XAMPP要记得启动Apache和MySQL的服务哦

找到网页的根目录

如何判断我们的php开发环境已经搭建好了呢?首先我们需要找到网页的根目录,在Linux服务器部署nginx,网站服务器的默认根目录是/var/www/html,而使用XAMPP部署Apache,网站服务器的默认根目录是XAMPP/xamppfiles/htdocs。

在前面我们了解过,网页根目录是可以用Nginx来配置的,Nginx的配置文件是/etc/nginx/sites-available/default,那相应的Apache和Nginx的配置也有很多相似之处,Apache的配置文件通常是在/etc/httpd/conf/httpd.conf,感兴趣的朋友也可以了解一下如何配置Apache。

查看php的配置信息

打开VS Code文本编辑器,新建一个文件info.php,并在info.php里输入代码,这个phpinfo()是输出php配置信息的函数

然后把info.php文件放到网页的根目录下,如果是云服务器,在浏览器里输入ip/info.php,如果是XAMPP部署的,则输入localhost/info.php,我们就可以看到php的配置信息啦。

从配置信息里可以获取到很多关键的信息,这个大家以后深入学习PHP的时候才会用到。比如php环境安装了哪些模块,缺省哪些模块,是否开启某项服务等等。

在配置信息里我们可以看到PHP的版本为7以上,尽管PHP7性能相对于PHP5提升了数倍,而且已经是大公司的主流,但是市面上大多数教程和案例还是PHP5,大家注意区分。

PHP的基础知识

首先我们在xmapp的htdocs的目录下新建一个文件夹比如hackwork-php,然后用VS Code打开该文件夹,并在该文件夹下新建一个lesson1的文件夹用于管理第一节课的代码,第二节课新建lesson2,依次类推,这样管理文件会比较方便一些,比如下面的文件夹结构示意:

我们使用VS Code在lesson1的文件夹下面新建一个01.php的文件,

上面我们就又新建了一个php文件,

  • php文件的默认后缀就是.php,
  • php的脚本是以<?php开头,以?>结尾(有时候没有结尾也不影响)
  • php语句用英文状态下的分号;结尾

然后我们在浏览器里面输入http://localhost/hackwork-php/lesson1/01.php就能打开php文件啦。单行注释和多行注释的内容不会显示在浏览器上。

也就是说我们是通过打开浏览器来运行PHP代码的。我们可以把文件夹的结构和在浏览器里输入的地址对比一下,我们就应该知道该如何使用浏览器打开放在网页服务器里的文件啦。

PHP与HTML

将PHP代码内嵌到HTML代码里

首先我们在lesson1的文件夹下新建一个index.php的文件,复制以下代码:

然后在浏览器里面输入localhost/hackwork-php/lesson1/index.php打开该文件查看效果,我们会发现:

  • php语句大小写并不敏感,echo和ECHO都能执行,不过大家最好统一;
  • <?php ?>可以嵌入到HTML代码中,其实php代码可以放置在HTML的任何位置;
  • php可以输出HTML代码,比如<br>,大家查看效果就会发现有换行的style;
  • echo语句可以连续输出,输出的内容用英文字符,隔开即可
  • 因为由了HTML代码,index.php也有了title,也就是PHP与HTML。

输出HTML代码

上面我们了解到PHP不仅可以嵌入到HTML代码当中,还能输出HTML代码。为了让大家更详细的了解php文件输出HTML的情况,我们可以新建一个02.php,输入以下代码,然后打开浏览器查看效果:

变量与赋值

和所有编程语言一样,PHP也有自己的一套变量和赋值的语法规则,大家可以看下面的案例:

给变量赋值就是把数据存储到变量了,是数据就会有数据类型,常见的变量类型有Integer(整型), Float(浮点型), Boolean(布尔型)、String(字符串)等。PHP变量的语法规则如下:

  • 变量以 $ 符号开始,后面跟着变量的名称,变量名是区分大小写的($x 和 $X 是两个不同的变量,尽管php语句不区分大小写,但是变量却是区分的哦);
  • 变量名必须以字母或者下划线字符开始,只能包含字母数字字符以及下划线(A-z、0-9 和 _ )且不能包含空格;

常量

在开发过程中,我们会把一些不经常变的值定义为一个常量。比如下面的代码,大家也可以新建一个php文件,然后输入下面的代码测试一下效果:

常量名虽然也可以使用小写,但是为了在开发过程中不混淆,我们通常把常量名的所有字母都大写以便区分。

常量是全局的,也就是说只要定义了常量,常量在整个项目中都会起作用,常量在实际开发中会经常使用到,比如网站的链接结构是:

https://hackwork.org/handbook/php/是HackWork php手册的一个路径,如果网站的域名发生变更,我们需要把源代码里所有的https://hackwork.org/handbook/php/改成新的域名未免太麻烦,如果我们把链接写成下面这样,以后我们就只需要更改一处HANDBOOK_URL的常量值,所有的链接就都更新啦。

注意:php脚本是不能嵌套的,<?php ?>里面不能再有<?php ?>。一个PHP文件里,可以包含多个php脚本,这多个php脚本都是可以嵌入到HTML代码之中,也可以输出HTML代码。

算数运算符

PHP的算数运算符加+、减-、乘*、除/、求余%和我们四则运算的加减乘除没有太大的区别,大家可以新建一个php文件执行比如04.php来了解:

单引号与双引号

输出HTML格式

我们使用PHP输出HTML代码时会遇到一个问题,就是HTML代码本身也是自带双引号“”的,我们通常会把HTML里面的双引号””改成单引号‘’,新建一个05.php,执行下面的代码:

变量加上单引号会不解析

通常情况下,单引号和双引号是没有什么区别,但是如果是变量加上单引号,变量不会解析,而加双引号的变量会解析,我们再来看效果。

字符串的连接

我们可以使用并置运算符 (.) 也就是英文字符的点把字符串给连接起来。

字符串的操作

字符串是PHP编程语言非常重要的数据类型,PHP提供了非常多的操作字符串的函数,这些函数数量非常多,我们切忌死记硬背,而是要借助技术文档来查阅。

技术文档:PHP字符串函数

我们只列举后面的章节会使用到的字符串函数,其他的大家可以在开发时遇到要操作字符串了自行查阅技术文档。

trim()函数

trim() 函数移除字符串两侧的空白、Tab、Enter或其他字符。这个函数尤其是用户在输入用户名或密码时,避免了输入了空格是空值。

stripslashes()函数

stripslashes()函数主要是用来移除字符串中的反斜杠\,这个函数的主要目的就是来清理从数据库中或者从 HTML 表单中取回的数据。

htmlspecialchars()函数

htmlspecialchars()函数是把预定义的字符 “<” (小于)和 “>” (大于)转换为 HTML 实体,通常情况下我们输入<strong></strong>、<h1></h1>,网页会给标签内的内容加粗或加上标题样式,有时候为了让html标签不被转换就会使用到该函数。

数组

数组也是PHP极为常见的数据类型,数组能够存储一个变量的多个数值。数组有三种类型:数值数组关联数组多维数组

大家不必去死记数组的三种类型,只需要知道数组和Excel表、数据库一样都是用来存储数据的,你可以在实战中根据你要存储的数据来选择数组的类型。

PHP数值数组

PHP数值数组会自动给值按照顺序配置数值ID,这个ID是从0开始算起的,我们可以使用$arrays[],一个中括号[]里放数组顺序ID来查找数组里的数据。

PHP关联数组

大家注意,使用双引号和单引号是没有影响的。数组也不能直接使用echo $TopCompany打印(大家可以测试一样),要打印数组需要使用到print_r() 函数。print_r() 函数用于打印变量,以更容易理解的形式展示

注意print_r()和echo的写法是不一样的。

PHP多维数组

数组的操作

技术文档:PHP数组函数

count函数

count函数计算数组中的单元数目,或对象中的属性个数。

array_diff函数

array_diff函数主要计算数组的差集,也就是比对两个数组不同的地方。

本节任务

  1. 搭建好PHP的开发环境,并使用phpinfo来检测环境变量,知道如何使用浏览器运行php代码;
  2. 了解PHP的语法,并掌握如何使用PHP内嵌到HTML文件当中,如何使用PHP输出HTML代码;
  3. 掌握变量、常量的赋值,以及规则;
  4. 掌握字符串的操作;
  5. 掌握数组的三种类型,以及数组的几个函数;

共有 0 条评论

可以使用微信、微博等 登录发表评论