博客列表 >php开发环境的配置、php的功能与工作原理、php变量替换并显示html数据—2019年2月20日

php开发环境的配置、php的功能与工作原理、php变量替换并显示html数据—2019年2月20日

笑颜常开的博客
笑颜常开的博客原创
2019年03月22日 14:15:361304浏览

      php开发过程中主要使用的工具是PhpStorm。PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具。PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能和智能HTML/CSS/JavaScript/PHP编辑、代码质量分析、版本控制集成(SVN、GIT)、调试和测试等功能。另外,它还是跨平台。在Windows和MacOS下都可以使用。PhpStorm-让开发更智能,而不是更困难。

1、php开发环境的安装

首先官网下载PhpStorm。


20180817094750222.png

下载完软件之后,双击安装文件即可进行安装,双击后出现下图所示的提示,点击Next即可。

20180817094750222.png

然后会出现一个选择安装目标路径的提示,可以自定义安装路径也可以选择默认安装路径(默认安装路径是在C盘,以后运行软件时会更加快),笔者是自定义安装路径把软件安装在D盘。选择完后点击Next即可。

20180817094750222.png

配置PhpStorm,除了32位,其他的全部选中,点击Next。

20180817095003658.png

点击Install即可。

20180817094750222.png


然后就会出现安装过程界面以及下载一些主要的程序。

20180817094750222.png

安装完成,点击Finish即可。

20180817094750222.png

第一次启动会出现下面设置界面,主要是IDE的配置信息,如果没有选择 Do not import setting 即可。

20180817094750222.png

然后出现注册界面。

20180817094750222.png

然后下载php工具箱,安装好后切换版本为php7.2.10-nts +Apache

捕获.jpg

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>

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行结果

QQ图片20190224003945.png

4、手写代码

捕获.jpg

5、总结

        PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议