php开发过程中主要使用的工具是PhpStorm。PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具。PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能和智能HTML/CSS/JavaScript/PHP编辑、代码质量分析、版本控制集成(SVN、GIT)、调试和测试等功能。另外,它还是跨平台。在Windows和MacOS下都可以使用。PhpStorm-让开发更智能,而不是更困难。
1、php开发环境的安装
首先官网下载PhpStorm。
下载完软件之后,双击安装文件即可进行安装,双击后出现下图所示的提示,点击Next即可。
然后会出现一个选择安装目标路径的提示,可以自定义安装路径也可以选择默认安装路径(默认安装路径是在C盘,以后运行软件时会更加快),笔者是自定义安装路径把软件安装在D盘。选择完后点击Next即可。
配置PhpStorm,除了32位,其他的全部选中,点击Next。
点击Install即可。
然后就会出现安装过程界面以及下载一些主要的程序。
安装完成,点击Finish即可。
第一次启动会出现下面设置界面,主要是IDE的配置信息,如果没有选择 Do not import setting 即可。
然后出现注册界面。
然后下载php工具箱,安装好后切换版本为php7.2.10-nts +Apache
2、php的功能与工作原理
(1)PHP的工作原理
PHP、Apache和MySQL的组合已经成为Web服务器的标配,php可以做很多事情,PHP是服务端的脚本程序,需要安装php应用程序去解释执行,简单来说php是web服务器(iis、apache)功能扩展,这种结构更加适合网站原理,php需要和web服务器、数据库一块才能发挥功能。
(2)PHP的功能
①.收集表单数据
表单是最常用的数据收集界面。在提交时可以用GET或POST的方法将数据发送给PHP程序脚本。另外PHP也可以以变量的形式访问每一个表单域,这些功能使php再收集客户输入的数据是非常简单的。
②.生成动态网页
PHP和JavaScript不同是php运行在服务器端,可以根据客户端不同请求动态输出内容,而客户端接受数据却不知道背后代码如何运行的,而javascript客户端运行的语言无法做到这点。
③.字符串处理
在处理文本时,经常要处理各种字符串,字符串处理是程序员使用最多技术之一,而PHP是把字符串作为基本的数据类型来处理。另外PHP中提供了丰富的字符串函数,来供我们使用。
④.动态输出图像
PHP通过使用GD扩展库来动态输出图像,登录大多数的验证码就是使用这个功能,我们也可以使用缩略图和添加水印等图像处理功能。
⑤.处理服务器端文件
要想让数据可以长期保留,必须要使用数据库或是文件系统,PHP可以利用文件系统函数任意操作服务器中的目录或文件(编辑、删除、创建等功能)。
⑥.会话控制
我们使用HTTP协议访问网站时它是一个无状态,没有内建机制来维护两个事务之间的状态。换句话来说http无法区分两个请求是否都是来自一个用户请求,而PHP就可以使用会话控制在网站中跟踪一个用户,控制该用户的行为。
以上的6项是php中常用的功能,剩下的就不一一列举。
3、php变量替换并显示html数据
以下是一些示例代码
实例
<!--使用变量保存页面中的数据--> <?php // php中的单行注释 /* * php中的多行注释 */ /** * php中的变量定义规则 * 1. 变量有类型与值二个属性 * 2. php变量是弱类型,给什么类型的值,他就是什么类型 * 3. 变量必须以$符开头,就是美元符, 学好php,多多的赚美元 * 4. 变量名必须是合法的标识符: 字母/数字/下划线,且不能以数字开头 */ // 定义文档标题 $title = '员工信息查询'; // 定义表格标题, 这是字符串类型 $tableTitle = '员工信息表'; // 定义员工人数,这是数值类型 $total = 5; // 将页面中原来内容用变量进行替换,会发现显示依然正常 // 变量,之所以叫变量,关键就是在于它的值是可以随时'变化'的 // 更新表格的标题 $tableTitle = 'PHP中文网讲师一览表'; // 其中, 'PHP中文网'是我们网站的名称,这个是不会轻易变化的,也不允许在代码中被更新 // 对于这样的数据, 声明为常量是最合适的 define('SITE_NAME', 'PHP中文网'); // 现在表格标题,可以这样写 $tableTitle = SITE_NAME.'讲师一览表'; // 为了看到与之前的区别,可以能站点名称上添加一个链接 $tableTitle = '<a href="http://php.cn">' . SITE_NAME . '</a>' .'讲师一览表'; // 常量不允许更新, 错误 //SITE_NAME = 'php.cn'; // 销毁一个变量, 此时页面中会发生错误:变量未定义 unset($tableTitle); // 常量是不允许被删除的 //unset(SITE_NAME); // 表中每一行数据,都具有规律性,非常适合用数组格式进行描述 // php中的数组定义,与javascript很相似 $user = [1,'猪阿哥',30, '男', 'zg@php.cn','123456']; // 这样的数组,叫索引数组,是用它的位置索引进行访问,索引从0开始编号 //echo $user[1]; // 访问第二个数组, 现在我们用这种语法,到html中进行替换 //echo count($user); // 索引数组很简洁,但也有一个致命的缺点, 就是元素的值,与它所在的位置是绑定的,必须一一对应 // 很多时候,我们希望用一个关键字来引用数组的值,而不是它在数组中的索引位置 // 例如: $user[1] 和 $user['name'] , 哪个更直观,更方便呢?显示是后者 // 使用有意义的字符串做为键名来引用数组元素的值,叫: '关联数组',类似js中的对象字面量 // 将$user数组改写成'关联数组' $user1 = [ 'id' => 1, 'name' => '猪哥哥', 'age' => 30, 'gender' => '男', 'email' => 'zg@php.cn', 'password' => '888888', ]; //echo $user1['name']; //echo key($user1); //echo current($user1); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title><?php echo $title; ?></title> <style> table,th,td { border: 1px solid #666; padding: 8px; } table { border-collapse: collapse; width: 80%; text-align: center; margin: 30px auto; } thead tr:first-of-type { background-color: lightblue; } tbody tr:hover { background-color: #efefef; } table > caption { font-size: 1.2rem; margin-bottom: 15px; } table + p { text-align: center; } </style> </head> <body> <table> <caption> <?php // 为了防止发生变量未定义的错误,可以在使用变量前进行检测 // 注意 if 语句的用法 if (!isset($tableTitle)) { $tableTitle = '员工信息表'; } // 字符串之间使用点'.'进行拼接,注意与javascript不一样, js使用的是'+'号 echo '<span style="color:red">' . $tableTitle . '</span>'; ?> </caption> <thead> <tr> <th>编号</th> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>邮箱</th> <th>密码</th> </tr> </thead> <tbody> <!-- 第一行数据用php进行输出--> <?php // 使用最原始的方式输出数据 echo '<tr>'; echo '<td>'.$user[0].'</td>'; echo '<td>'.$user[1].'</td>'; echo '<td>'.$user[2].'</td>'; echo '<td>'.$user[3].'</td>'; echo '<td>'.$user[4].'</td>'; echo '<td>'.$user[5].'</td>'; echo '</tr>'; // 上面的代码每多是重复的, 对于重复操作应该使用循环进行简化处理 // 我们用for 循环来简化代码 echo '<tr bgcolor="#deb887">'; // for(循环初始条件;是否继续循环的条件;循环条件更新语句) for ($i = 0; $i < count($user); $i++) { echo '<td>'.$user[$i].'</td>'; } echo '</tr>'; // 除了用for循环, 还可以while循环实现同样的输出 echo '<tr bgcolor="aqua">'; // 将循环初始条件写在循环语句的外部 $i = 0; while ($i < count($user)) { echo '<td>'.$user[$i].'</td>'; // 循环体中,必须要有循环条件的更新语句,防止出现死循环 $i++; } echo '</tr>'; // for 循环输出关联数组 // 使用数组函数: current(), key()都可以实现 echo '<tr bgcolor="#7fffd4">'; for ($i = 0; $i < count($user1); $i++) { // current($arr): 获取当前元素的值 echo '<td>' .current($user1) . '</td>'; // 指针后移一位 next($user1); } echo '</tr>'; // 数组内部指针复位 reset($user1); echo '<tr bgcolor="#6495ed">'; for ($i = 0; $i < count($user1); $i++) { // 使用key($arr): 获取当前元素的键名 $key = key($user1); echo '<td>' .$user1[$key] . '</td>'; next($user1); } echo '</tr>'; // 可以看出使用for处理关联数组还是非常麻烦的,而数据库查询出的数据却都是关联数组 // 所以php提供一个专门用于关联数组遍历的语法结构: foreach() echo '<tr bgcolor="#00bfff">'; foreach ($user1 as $key => $value) { echo '<td>' .$user1[$key] . '</td>'; } echo '</tr>'; // 在本例中, 我们只关心数组的值,所以还可以进一步简化 echo '<tr bgcolor="#ff0">'; foreach ($user1 as $value) { echo '<td>' .$value . '</td>'; } echo '</tr>'; // 关联数组的遍历输出非常重要, 后面的数据库操作中还会大量的用到,课后必须多多练习 ?> <tr> <td>2</td> <td>朱老师</td> <td>40</td> <td>男</td> <td>zls@php.cn</td> <td>123456</td> </tr> <tr> <td>3</td> <td>西门大官人</td> <td>50</td> <td>男</td> <td>xmdgr@php.cn</td> <td>123456</td> </tr> <tr> <td>4</td> <td>灭绝师太</td> <td>60</td> <td>女</td> <td>mjst@php.cn</td> <td>123456</td> </tr> <tr> <td>5</td> <td>韦小宝</td> <td>20</td> <td>男</td> <td>wxb@php.cn</td> <td>123456</td> </tr> </tbody> </table> <p>总计: <?php echo $total; ?> 人</p> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
运行结果
4、手写代码
5、总结
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。