PHP-计算表单提交的数据

1 实践目的与任务

(1)PHP编辑编译环境安装与配置;

(2)PHP变量定义、语法、语句的使用;

(3)PHP页面的编写;

(4)PHP页面提交数据的采集、处理;

2 使用的工具、环境配置、知识点等

(1)Eclipse for PHP等PHP编辑工具、phpStudy等网页运行集成环境;

(2)安装以上软件的计算机;

3 实践内容及要求

(1)

配置phpStudy测试Web服务器正常运行,配置Eclipse for PHP编辑环境,使用phpStudy环境在Eclipse for PHP上运行调试PHP代码。调试配置参考如下:

[XDebug]

zend_extension="C:\phpStudy\PHPTutorial\php\php-5.4.45\ext\php_xdebug.dll"

;函数调用跟踪信息输出文件目录,默认值为/tmp

xdebug.trace_output_dir="C:\phpStudy\PHPTutorial\tmp\xdebug"

xdebug.auto_trace = On

;性能分析文件的存放位置,默认值为/tmp

xdebug.profiler_output_dir="C:\phpStudy\PHPTutorial\tmp\xdebug"

xdebug.profiler_enable=On

;是否允许Xdebug跟踪函数参数,默认值为0

xdebug.collect_params = On

;是否允许Xdebug跟踪函数返回值,默认值为

xdebug.collect_return = On

;是否收集指定作用域中的变量信息,利用xdebug_get_declared_vars()函数,那么就需要开启该设置了

;xdebug.collect_vars = On

;在异常出现时甚至是该异常被捕捉也会显示其堆栈跟踪信息

xdebug.show_exception_trace = On

;远程调试设置

xdebug.remote_enable = On

xdebug.remote_host=localhost

xdebug.remote_port=9000

xdebug.remote_handler=dbgp

;任何运行情况下都开启调试

xdebug.remote_autostart = Off

(2)

在Web服务器下编写包含如下form标签的完整网页input.html,输入多个十进制正整数:

输入操作数:
数1:
数2:
数3:
数4:
数5:
提交按钮:
图片按钮:
重置按钮:      

(3)

在Web服务器下编写文件calculate.php,在其中能够获取浏览器端访问input.html页面时在form标签中提交的信息,上传文件,并正确返回浏览器以下结果:数1的逆序,数2和数3的最小公倍数,数4的二进制,数5的十六进制;

4 需求分析和功能描述

4.1 数据结构表示与存储需求分析

用“指针”与“数组”来存储用户在form表单中提交的数据信息。

在input.html文件中,用数组来存储用户输入的5个数字信息,然后提交form表单后,用“指针”来存储数据信息。

用foreach(array as $value)来遍历数组比较方便,其功能如下:

foreach(array as $value)

使用该方法循环遍历给定的数组array,每次循环中,“当前指针”所指元素的“值”赋给变量$value,然后移动数组array“当前指针”,使“当前指针”指向下一个元素,周而复始,直至数组array最后一个元素,此时“当前指针”为空。

4.2 操作与功能分析

编写好input.html文件后,需要将用户输入的信息“传输”至calculate.php文件中,然后在calculate.php文件编写相关的代码,对数1、数2、数3、数4、数5进行操作。

5 系统总体设计

5.1  输入与流程顺序

用form表单及相关标签接收用户输入的信息。如,标签,通过设置标签中的name值,将用户输入的数据组成一个数组,然后统一提交至calculate.php文件中。

5.2  系统功能模块设计

系统功能有:处理用户输入的数据,如:返回数字1的逆序数、求数字2与数字3的最小公倍数、将数字4转化为二进制数字输出、将数字5转化为十六进制数字输出。重置表单信息、点击图片按钮提交表单。

表单按钮部分较为简单,直接设置标签的相关属性就可以了。

数据处理部分较为困难,需要新建数组,然后逐个对数据进行处理。

5.3  数据结构和流程设计

在input.html文件中,用“数组”存储用户输入的数据;用户提交表单后,在calculate.php文件中用“链表”来存储数据。创建新数组,用来存储用户输入的数据,然后遍历新建数组,对数据进行处理。

6 详细设计和实现过程

(具体功能实现等,可自由添加其它内容、部分源代码等)

6.1  学生信息等结构设计与描述(写出你所设计的数组或链表等其他形式的变量)

foreach ()函数   循环遍历给定的数组

implode() 函数  把数组元素组合为字符串。

array_reverse()函数以相反的元素顺序返回数组。

str_split()函数   把字符串分割到数组中。

max()函数      返回一个数组中的最大值,或者几个指定值中的最大值。

decbin()函数    把十进制数转换为二进制数。

dechex() 函数  把十进制转换为十六进制。

6.2 主要函数设计(列出你所设计的函数声明语句,每个声明后需有注释,表明该函数功能)

foreach ()函数   循环遍历给定的数组

implode() 函数  把数组元素组合为字符串。

array_reverse()函数以相反的元素顺序返回数组。

str_split()函数   把字符串分割到数组中。

max()函数      返回一个数组中的最大值,或者几个指定值中的最大值。

decbin()函数    把十进制数转换为二进制数。

dechex() 函数  把十进制转换为十六进制。

7 功能展示

(功能展示图,说明等)

代码运行截图1


代码运行截图2

8 实践收获

此次实验,难度较大。在实验的过程中,收获了很多知识,解决了很多疑惑。在浏览器地址栏中输入文件所在位置,就可以运行此文件,感到PHP语言十分灵活。

在实验过程中,遇到的最大的困难就是:将form表单中的5个数据提交后,如何遍历数组,使得程序人员可以逐个对数据进行处理。困扰了我好长时间。参考课本98页对foreach语言结构的讲述以及127页具体运用foreach数据结构的代码,我还是没有想到逐个遍历数组的方法。在百度上搜寻了foreach语言结构的相关知识后,我渐渐对foreach语言结构有了更深的理解。foreach($_POST['operands']

as $a[]) {}语句,可以将数组中的数据元素逐个存放在一个新的数组中,非常容易遍历数组、对数组中的各个数据进行处理。

在实验中还有很多疑惑。比如,汉字乱码。为什么我在PHP文件中加入了“header("Content-Type:

text/html;charset=utf-8");”语句,依旧无法完全解决乱码问题?在我编写的其它PHP文件中,加入“header("Content-Type:

text/html;charset=utf-8");”语句后,乱码问题得到了很好的解决。在百度上搜了很多篇文章,都没有解决我的疑惑!我准备问问老师或同学们。

我认为我的程序还有很多可以改进的地方。例如,在calculate.php文件中对数组进行遍历的操作。我认为可以用for()循环对数组进行遍历。在for()循环语句中,加上限制条件,如:判断当前数字是数组的第几个元素,根据元素所处序号选择不同的操作方法对数据进行处理。我认为这样会令程序更加灵活、更具可读性。

此外,我认为还可以在用户输入数据的时候,对数据进行验证。验证用户所输入的内容是不是数字。这在一定程度上可以解决乱码的问题。

9  附录

9.1 关键性代码

(可加部分关键性代码,不超过3页;说明等)

配置文件
代码截图1
代码截图2

你可能感兴趣的:(PHP-计算表单提交的数据)