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;
?>
如果不会怎么办,我的视频教程里有个最简单的留言板 最开始离不开模仿, 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 实践是检验自己会不会的真理。 基础有没有对学习php没有太大区别,关键是兴趣。 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: Ps:以上纯属原创,如有雷同,纯属巧合 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 基础有没有对学习php没有太大区别,关键是兴趣。 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
页:
[1]