PHP-計(jì)算表單提交的數(shù)據(jù)

1?實(shí)踐目的與任務(wù)

(1)PHP編輯編譯環(huán)境安裝與配置;

(2)PHP變量定義宫莱、語(yǔ)法丈攒、語(yǔ)句的使用;

(3)PHP頁(yè)面的編寫(xiě)授霸;

(4)PHP頁(yè)面提交數(shù)據(jù)的采集巡验、處理;

2?使用的工具碘耳、環(huán)境配置显设、知識(shí)點(diǎn)等

(1)Eclipse for PHP等PHP編輯工具、phpStudy等網(wǎng)頁(yè)運(yùn)行集成環(huán)境辛辨;

(2)安裝以上軟件的計(jì)算機(jī)捕捂;

3?實(shí)踐內(nèi)容及要求

(1)

配置phpStudy測(cè)試Web服務(wù)器正常運(yùn)行,配置Eclipse for PHP編輯環(huán)境斗搞,使用phpStudy環(huán)境在Eclipse for PHP上運(yùn)行調(diào)試PHP代碼指攒。調(diào)試配置參考如下:

[XDebug]

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

;函數(shù)調(diào)用跟蹤信息輸出文件目錄,默認(rèn)值為/tmp

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

xdebug.auto_trace = On

;性能分析文件的存放位置僻焚,默認(rèn)值為/tmp

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

xdebug.profiler_enable=On

;是否允許Xdebug跟蹤函數(shù)參數(shù)允悦,默認(rèn)值為0

xdebug.collect_params = On

;是否允許Xdebug跟蹤函數(shù)返回值,默認(rèn)值為

xdebug.collect_return = On

;是否收集指定作用域中的變量信息虑啤,利用xdebug_get_declared_vars()函數(shù)隙弛,那么就需要開(kāi)啟該設(shè)置了

;xdebug.collect_vars = On

;在異常出現(xiàn)時(shí)甚至是該異常被捕捉也會(huì)顯示其堆棧跟蹤信息

xdebug.show_exception_trace = On

;遠(yuǎn)程調(diào)試設(shè)置

xdebug.remote_enable = On

xdebug.remote_host=localhost

xdebug.remote_port=9000

xdebug.remote_handler=dbgp

;任何運(yùn)行情況下都開(kāi)啟調(diào)試

xdebug.remote_autostart = Off

(2)

在Web服務(wù)器下編寫(xiě)包含如下form標(biāo)簽的完整網(wǎng)頁(yè)input.html架馋,輸入多個(gè)十進(jìn)制正整數(shù):<form action="calculate.php"method="post" enctype="multipart/form-data">輸入操作數(shù):<br/>數(shù)1:<inputtype="text" name="operands[]" value="輸入運(yùn)算數(shù)" /><br/>數(shù)2:<inputtype="text" name="operands[]" value="輸入運(yùn)算數(shù)" /><br/>數(shù)3:<inputtype="text" name="operands[]" value="輸入運(yùn)算數(shù)" /><br/>數(shù)4:<input type="text"name="operands[]" value="輸入運(yùn)算數(shù)"/><br/>數(shù)5:<inputtype="text" name="operands[]" value="輸入運(yùn)算數(shù)" /><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="重新填寫(xiě)"/></form>? ? ??

(3)

在Web服務(wù)器下編寫(xiě)文件calculate.php,在其中能夠獲取瀏覽器端訪問(wèn)input.html頁(yè)面時(shí)在form標(biāo)簽中提交的信息驶鹉,上傳文件绩蜻,并正確返回瀏覽器以下結(jié)果:數(shù)1的逆序,數(shù)2和數(shù)3的最小公倍數(shù)室埋,數(shù)4的二進(jìn)制,數(shù)5的十六進(jìn)制伊约;

4?需求分析和功能描述

4.1?數(shù)據(jù)結(jié)構(gòu)表示與存儲(chǔ)需求分析

用“指針”與“數(shù)組”來(lái)存儲(chǔ)用戶在form表單中提交的數(shù)據(jù)信息姚淆。

在input.html文件中,用數(shù)組來(lái)存儲(chǔ)用戶輸入的5個(gè)數(shù)字信息屡律,然后提交form表單后腌逢,用“指針”來(lái)存儲(chǔ)數(shù)據(jù)信息。

用foreach(array as $value)來(lái)遍歷數(shù)組比較方便超埋,其功能如下:

foreach(array as $value)

使用該方法循環(huán)遍歷給定的數(shù)組array搏讶,每次循環(huán)中,“當(dāng)前指針”所指元素的“值”賦給變量$value霍殴,然后移動(dòng)數(shù)組array“當(dāng)前指針”媒惕,使“當(dāng)前指針”指向下一個(gè)元素,周而復(fù)始来庭,直至數(shù)組array最后一個(gè)元素妒蔚,此時(shí)“當(dāng)前指針”為空。

4.2?操作與功能分析

編寫(xiě)好input.html文件后月弛,需要將用戶輸入的信息“傳輸”至calculate.php文件中肴盏,然后在calculate.php文件編寫(xiě)相關(guān)的代碼,對(duì)數(shù)1帽衙、數(shù)2菜皂、數(shù)3、數(shù)4厉萝、數(shù)5進(jìn)行操作恍飘。

5?系統(tǒng)總體設(shè)計(jì)

5.1? 輸入與流程順序

用form表單及相關(guān)標(biāo)簽接收用戶輸入的信息。如冀泻,<input />標(biāo)簽常侣,通過(guò)設(shè)置<input />標(biāo)簽中的name值罪帖,將用戶輸入的數(shù)據(jù)組成一個(gè)數(shù)組但两,然后統(tǒng)一提交至calculate.php文件中。

5.2? 系統(tǒng)功能模塊設(shè)計(jì)

系統(tǒng)功能有:處理用戶輸入的數(shù)據(jù)羽嫡,如:返回?cái)?shù)字1的逆序數(shù)肢专、求數(shù)字2與數(shù)字3的最小公倍數(shù)舞肆、將數(shù)字4轉(zhuǎn)化為二進(jìn)制數(shù)字輸出焦辅、將數(shù)字5轉(zhuǎn)化為十六進(jìn)制數(shù)字輸出。重置表單信息椿胯、點(diǎn)擊圖片按鈕提交表單筷登。

表單按鈕部分較為簡(jiǎn)單,直接設(shè)置<input />標(biāo)簽的相關(guān)屬性就可以了哩盲。

數(shù)據(jù)處理部分較為困難前方,需要新建數(shù)組,然后逐個(gè)對(duì)數(shù)據(jù)進(jìn)行處理廉油。

5.3? 數(shù)據(jù)結(jié)構(gòu)和流程設(shè)計(jì)

在input.html文件中惠险,用“數(shù)組”存儲(chǔ)用戶輸入的數(shù)據(jù);用戶提交表單后抒线,在calculate.php文件中用“鏈表”來(lái)存儲(chǔ)數(shù)據(jù)班巩。創(chuàng)建新數(shù)組,用來(lái)存儲(chǔ)用戶輸入的數(shù)據(jù)嘶炭,然后遍歷新建數(shù)組抱慌,對(duì)數(shù)據(jù)進(jìn)行處理。

6?詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)過(guò)程

(具體功能實(shí)現(xiàn)等眨猎,可自由添加其它內(nèi)容抑进、部分源代碼等)

6.1? 學(xué)生信息等結(jié)構(gòu)設(shè)計(jì)與描述(寫(xiě)出你所設(shè)計(jì)的數(shù)組或鏈表等其他形式的變量)

foreach ()函數(shù)???循環(huán)遍歷給定的數(shù)組

implode() 函數(shù)??把數(shù)組元素組合為字符串。

array_reverse()函數(shù)以相反的元素順序返回?cái)?shù)組宵呛。

str_split()函數(shù)???把字符串分割到數(shù)組中单匣。

max()函數(shù)??????返回一個(gè)數(shù)組中的最大值,或者幾個(gè)指定值中的最大值宝穗。

decbin()函數(shù)????把十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)户秤。

dechex() 函數(shù)??把十進(jìn)制轉(zhuǎn)換為十六進(jìn)制。

6.2?主要函數(shù)設(shè)計(jì)(列出你所設(shè)計(jì)的函數(shù)聲明語(yǔ)句逮矛,每個(gè)聲明后需有注釋?zhuān)砻髟摵瘮?shù)功能)

foreach ()函數(shù)???循環(huán)遍歷給定的數(shù)組

implode() 函數(shù)??把數(shù)組元素組合為字符串鸡号。

array_reverse()函數(shù)以相反的元素順序返回?cái)?shù)組。

str_split()函數(shù)???把字符串分割到數(shù)組中须鼎。

max()函數(shù)??????返回一個(gè)數(shù)組中的最大值鲸伴,或者幾個(gè)指定值中的最大值。

decbin()函數(shù)????把十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)晋控。

dechex() 函數(shù)??把十進(jìn)制轉(zhuǎn)換為十六進(jìn)制汞窗。

7?功能展示

(功能展示圖,說(shuō)明等)

代碼運(yùn)行截圖1


代碼運(yùn)行截圖2

8?實(shí)踐收獲

此次實(shí)驗(yàn)赡译,難度較大仲吏。在實(shí)驗(yàn)的過(guò)程中,收獲了很多知識(shí),解決了很多疑惑裹唆。在瀏覽器地址欄中輸入文件所在位置誓斥,就可以運(yùn)行此文件,感到PHP語(yǔ)言十分靈活许帐。

在實(shí)驗(yàn)過(guò)程中劳坑,遇到的最大的困難就是:將form表單中的5個(gè)數(shù)據(jù)提交后,如何遍歷數(shù)組成畦,使得程序人員可以逐個(gè)對(duì)數(shù)據(jù)進(jìn)行處理距芬。困擾了我好長(zhǎng)時(shí)間。參考課本98頁(yè)對(duì)foreach語(yǔ)言結(jié)構(gòu)的講述以及127頁(yè)具體運(yùn)用foreach數(shù)據(jù)結(jié)構(gòu)的代碼羡鸥,我還是沒(méi)有想到逐個(gè)遍歷數(shù)組的方法蔑穴。在百度上搜尋了foreach語(yǔ)言結(jié)構(gòu)的相關(guān)知識(shí)后,我漸漸對(duì)foreach語(yǔ)言結(jié)構(gòu)有了更深的理解惧浴。foreach($_POST['operands']

as $a[]) {}語(yǔ)句,可以將數(shù)組中的數(shù)據(jù)元素逐個(gè)存放在一個(gè)新的數(shù)組中奕剃,非常容易遍歷數(shù)組衷旅、對(duì)數(shù)組中的各個(gè)數(shù)據(jù)進(jìn)行處理。

在實(shí)驗(yàn)中還有很多疑惑纵朋。比如柿顶,漢字亂碼。為什么我在PHP文件中加入了“header("Content-Type:

text/html;charset=utf-8");”語(yǔ)句操软,依舊無(wú)法完全解決亂碼問(wèn)題嘁锯?在我編寫(xiě)的其它PHP文件中,加入“header("Content-Type:

text/html;charset=utf-8");”語(yǔ)句后聂薪,亂碼問(wèn)題得到了很好的解決家乘。在百度上搜了很多篇文章,都沒(méi)有解決我的疑惑藏澳!我準(zhǔn)備問(wèn)問(wèn)老師或同學(xué)們仁锯。

我認(rèn)為我的程序還有很多可以改進(jìn)的地方。例如翔悠,在calculate.php文件中對(duì)數(shù)組進(jìn)行遍歷的操作业崖。我認(rèn)為可以用for()循環(huán)對(duì)數(shù)組進(jìn)行遍歷。在for()循環(huán)語(yǔ)句中蓄愁,加上限制條件双炕,如:判斷當(dāng)前數(shù)字是數(shù)組的第幾個(gè)元素,根據(jù)元素所處序號(hào)選擇不同的操作方法對(duì)數(shù)據(jù)進(jìn)行處理撮抓。我認(rèn)為這樣會(huì)令程序更加靈活妇斤、更具可讀性。

此外,我認(rèn)為還可以在用戶輸入數(shù)據(jù)的時(shí)候趟济,對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證乱投。驗(yàn)證用戶所輸入的內(nèi)容是不是數(shù)字。這在一定程度上可以解決亂碼的問(wèn)題顷编。

9? 附錄

9.1?關(guān)鍵性代碼

(可加部分關(guān)鍵性代碼戚炫,不超過(guò)3頁(yè);說(shuō)明等)

配置文件
代碼截圖1
代碼截圖2
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末媳纬,一起剝皮案震驚了整個(gè)濱河市双肤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钮惠,老刑警劉巖茅糜,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異素挽,居然都是意外死亡蔑赘,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)预明,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)缩赛,“玉大人,你說(shuō)我怎么就攤上這事撰糠∷肘桑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵阅酪,是天一觀的道長(zhǎng)旨袒。 經(jīng)常有香客問(wèn)我,道長(zhǎng)术辐,這世上最難降的妖魔是什么砚尽? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮术吗,結(jié)果婚禮上尉辑,老公的妹妹穿的比我還像新娘。我一直安慰自己较屿,他們只是感情好隧魄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著隘蝎,像睡著了一般购啄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘱么,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天狮含,我揣著相機(jī)與錄音,去河邊找鬼。 笑死几迄,一個(gè)胖子當(dāng)著我的面吹牛蔚龙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播映胁,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼木羹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了解孙?” 一聲冷哼從身側(cè)響起坑填,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎弛姜,沒(méi)想到半個(gè)月后脐瑰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡廷臼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年苍在,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荠商。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡忌穿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出结啼,到底是詐尸還是另有隱情,我是刑警寧澤屈芜,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布郊愧,位于F島的核電站,受9級(jí)特大地震影響井佑,放射性物質(zhì)發(fā)生泄漏属铁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一躬翁、第九天 我趴在偏房一處隱蔽的房頂上張望焦蘑。 院中可真熱鬧,春花似錦盒发、人聲如沸例嘱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拼卵。三九已至,卻和暖如春蛮艰,著一層夾襖步出監(jiān)牢的瞬間腋腮,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留即寡,地道東北人徊哑。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像聪富,于是被迫代替她去往敵國(guó)和親莺丑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • PHP常用函數(shù)大全 usleep() 函數(shù)延遲代碼執(zhí)行若干微秒善涨。 unpack() 函數(shù)從二進(jìn)制字符串對(duì)數(shù)據(jù)進(jìn)行解...
    上街買(mǎi)菜丶迷倒老太閱讀 1,369評(píng)論 0 20
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,208評(píng)論 0 3
  • 總結(jié)了一些開(kāi)發(fā)中常用的函數(shù): usleep() //函數(shù)延遲代碼執(zhí)行若干微秒窒盐。 unpack() //函數(shù)從二進(jìn)制...
    ADL2022閱讀 454評(píng)論 0 3
  • 一、數(shù)據(jù)類(lèi)型 在PHP中钢拧,支持8種原始類(lèi)型蟹漓,其中包括四種標(biāo)量類(lèi)型、兩種復(fù)合類(lèi)型和兩種特殊類(lèi)型源内。PHP是一門(mén)松散類(lèi)型...
    大嘴蝸牛閱讀 945評(píng)論 4 5
  • 數(shù)組的概述 PHP 中的數(shù)組實(shí)際上是一個(gè)有序圖葡粒。圖是一種把 values 映射到 keys 的類(lèi)型。此類(lèi)型在很多方...
    dptms閱讀 1,611評(píng)論 0 4