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,输入多个十进制正整数:<form action="calculate.php"method="post" enctype="multipart/form-data">输入操作数:<br/>数1:<inputtype="text" name="operands[]" value="输入运算数" /><br/>数2:<inputtype="text" name="operands[]" value="输入运算数" /><br/>数3:<inputtype="text" name="operands[]" value="输入运算数" /><br/>数4:<input type="text"name="operands[]" value="输入运算数"/><br/>数5:<inputtype="text" name="operands[]" value="输入运算数" /><br/>提交按钮:<input type="submit" name="submit1"value="普通提交按钮"/><br/>图片按钮:<input type="image" name="submit2"src="http://www.google.cn/intl/zh-CN/images/logo.gif"height="40" /><br/>重置按钮:<input type="reset" name="cancel"value="重新填写"/></form>      

(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表单及相关标签接收用户输入的信息。如,<input />标签,通过设置<input />标签中的name值,将用户输入的数据组成一个数组,然后统一提交至calculate.php文件中。

5.2  系统功能模块设计

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

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

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

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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容

  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,350评论 0 20
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,072评论 0 3
  • 总结了一些开发中常用的函数: usleep() //函数延迟代码执行若干微秒。 unpack() //函数从二进制...
    ADL2022阅读 454评论 0 3
  • 一、数据类型 在PHP中,支持8种原始类型,其中包括四种标量类型、两种复合类型和两种特殊类型。PHP是一门松散类型...
    大嘴蝸牛阅读 934评论 4 5
  • 数组的概述 PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方...
    dptms阅读 1,587评论 0 4