小妖女 发表于 2015-2-4 00:08:22

PHP网页设计PHP中的表单使用释疑

现在,也有了从事软件工程的想法,在经过了一个月的PHP培训学习之后,发现其实软件工程并没有想像中的那么难。   综述:表单作为用户提交信息的一个关头路子,一向是PHP编程中的一个最根基的方面,也是入门者会碰到的一个大的重点与难点。咱们选择有关处置联系关系数、取得同名checkbox的拔取值、上传文件方面对照轻易令众猜疑的中央停止归

若何利用表单传递联系关系数组?

经由过程表单传递的联系关系数组能被 each()函数读取,法式以下:

//test1.php
<form action="test2.php" method=post>
<input type=hidden name="var" value="Beijing">
<input type=hidden name="var['age']" value="20">
<input type=submit value=submit>
这个名为var值为"Beijing"的元素递交到test2.php后,就成了一个联系关系数组,var["Address"]="Beijing":
//test2.php
<?
echo $var["Address"];
?>
输入了局为:Beijing

若何处置同名checkbox?

详细代码:

test1.php:
<FORM METHOD=POST ACTION="test2.php">
苹果<INPUT TYPE="checkbox" NAME="come[]" VALUE="苹果"><BR>
鸭梨<INPUT TYPE="checkbox" NAME="come[]" VALUE="鸭梨"><BR>
喷鼻蕉<INPUT TYPE="checkbox" NAME="come[]" VALUE="喷鼻蕉"><BR>
西瓜<INPUT TYPE="checkbox" NAME="come[]" VALUE="西瓜"><BR>
<INPUT TYPE="submit" VALUE="提交">
</FORM>

test2.php:
你的选择:<BR>
<?
for ($i=0;$i<sizeof($come);$i++) echo $come[$i],"<BR>";
?> 如许从test1.php提交过去的一切名为come[]的元素就构成了一个数组,如许咱们就能够很轻易地处置了.

如何才干观察提交的一切信息?

普通来讲,PHP引擎将每个表单域放到一个叫做$HTTP_POST_VARS的数组中,所以咱们可以经由过程读取这个数组就能够观察提交的一切信息:

<?
echo "POST 所送出的值为:<BR>";
while ( list( $key, $val ) = each( $HTTP_POST_VARS ) ) {
 echo "$key => $val<BR>";
}
?>
若何同时上传多个文件?

咱们来看一个例子。

上面是上传文件的提交页面,使用该页面你不但可以生成 1000 个上传文件框(也能够是恣意多个 0~n ),并且可分离指出它们的保留途径。

提交页面的文件输出框为定名为: file0,file1,...file100,...fileN
提交页面的文件途径框为定名为: path0,path1,...path100,...pathN
因为页面的生成十分复杂,所以就不在此多注释了,用 javascript 界说了两个函数,check() 用于提交页面,create()用于生成文件上传框。
phpfileup.htm
--------------------------------------------------------
【文件php9.txt】
--------------------------------------------------------
文件提交页面既已生成,上面义务就很明白了:将提交的文件内容保留到办事器上。

咱们先界说一个文件保留函数 fup() 它有两个参数:
$filename: 文件内容
$fname: 文件名(包括途径)
剩下的就是写一个轮回将文件顺次写入办事器。

PHP 关于上传文件的处置是如许的:假如提交的文件框名为 file0, 那末提交给 PHP 的文件内容保留在变量 $file0 中,而文件名则保留在 $file0_name 中。如许在这个轮回中咱们要做的就是将提交页面提交的内容分化出来,完成进程请看上面的代码。

fileup.php
<<?
function fup($Local_file_name,$Remote_file_name) {
If($Local_file_name != "none") {
copy($Local_file_name,$Remote_file_name);
unlink($Local_file_name);
}
}

for($i=0;$i<$cnt;$i++) {
$ffnn="file".$i;
$ffnnname=$ffnn."_name";
$ffpath="path".$i;

//print $$ffnn;
print $$ffnnname;
print "<BR>";

fup($$ffnn,$$ffpath.$$ffnnname); //"../www/test/tmp/"
}
?> 若何对页面停止抓取和剖析?   起首,必需决意咱们将抓取的URL地址。可以经由过程在剧本中设定或经由过程$QUERY_STRING传递。为了复杂起见,让咱们将变量直接设在剧本中。
<?
$url = 'http://www.domain.com';
?>
  第二步,咱们抓取指定文件,而且经由过程file()函数将它存在一个数组里。
<?
$url = 'http://www.domain.com';
$lines_array = file($url);
?>
  好了,如今数组里已有了文件了。然而,咱们想剖析的文本能够不全在一行外面。为懂得决这个文件,咱们可以复杂地将数组$lines_array转化成一个字符串。咱们可使用implode(x,y)函数来完成它。假如在前面你想用explode(将字符串变量数组),将x设成"|"或"!"或其它相似的分隔符能够会更好。然而出于咱们的目标,最好将x设成空格。y是另外一个需要的参数,由于它是你想用implode()处置的数组。
<?
$url = 'http://www.domain.com';
$lines_array = file($url);
$lines_string = implode('', $lines_array);
?>
  如今,抓取任务就做完了,上面该停止剖析了。在这个例子中,咱们想失掉在<head>到</head>之间的一切器材。为了剖析出字符串,咱们还需求正轨表达式。
<?
$url = 'http://www.domain.com';
$lines_array = file($url);
$lines_string = implode('', $lines_array);
eregi("<head>(.*)</head>", $lines_string, $head);
?>
  在下面的代码中,eregi()函数按上面的格局履行:
eregi("<head>(.*)</head>", $lines_string, $head);
  "(.*)"暗示一切器材,代表在<head>和</head>间的一切器材。
$lines_string是咱们正在剖析的字符串,$head是剖析后的了局寄存的数组。
  最初,咱们可以输入数据。由于仅在<head>和</head>间存在一个实例,咱们可以平安的假定数组中仅存在着一个元素,并且就是咱们想要的。
<?
$url = 'http://www.domain.com';
$lines_array = file($url);
$lines_string = implode('', $lines_array);
eregi("<head>(.*)</head>", $lines_string, $head);
echo $head;
?>

如果不会怎么办,我的视频教程里有个最简单的留言板 最开始离不开模仿,

山那边是海 发表于 2015-2-4 09:15:01

我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。

活着的死人 发表于 2015-2-7 00:34:12

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

只想知道 发表于 2015-3-4 10:03:14

实践是检验自己会不会的真理。

精灵巫婆 发表于 2015-3-6 12:35:57

基础有没有对学习php没有太大区别,关键是兴趣。

灵魂腐蚀 发表于 2015-3-13 01:02:36

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

飘飘悠悠 发表于 2015-3-17 09:10:50

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

柔情似水 发表于 2015-3-22 22:10:44

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

仓酷云 发表于 2015-4-6 01:11:08

Ps:以上纯属原创,如有雷同,纯属巧合

透明 发表于 2015-4-8 14:21:13

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

金色的骷髅 发表于 2015-4-9 09:46:05

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

兰色精灵 发表于 2015-4-12 20:51:20

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

冷月葬花魂 发表于 2015-4-13 03:13:38

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

admin 发表于 2015-4-13 22:59:39

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

小魔女 发表于 2015-4-16 01:08:52

基础有没有对学习php没有太大区别,关键是兴趣。

若天明 发表于 2015-4-26 09:10:27

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

飘灵儿 发表于 2015-5-1 10:10:30

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

不帅 发表于 2015-5-7 16:00:38

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

深爱那片海 发表于 2015-6-6 03:09:16

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

爱飞 发表于 2015-6-8 11:14:15

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
页: [1]
查看完整版本: PHP网页设计PHP中的表单使用释疑