实验综合成绩 | (百分制) | 实验评阅教师签名 | |||||
其中 | 实验态度 | 优 | 良 | 中 | 及格 | 不及格 | |
实验报告 | 优 | 良 | 中 | 及格 | 不及格 | ||
华北科技学院管理学院
实验报告册
实 验 报 告
实验时间:2014 年11月 12 日 1、2 节
一、 实验运行环境 Windows 7计算机系统; php5.0;apache2.2 |
二、实验目的 1、掌握正则表达式的使用方法 2、掌握php获取html表单数据的方法 3、掌握php中的文件处理的使用方法 4、掌握类的创建方法及应用 |
三、实验要求 按要求编写程序并运行,并分析程序运行过程,完成实验内容后撰写实验报告。 |
1、某表单及验证表单的程序如3-1文件夹,请运行该程序并理解check.js文件中的正则表达式。 正则表达式包括元字符和文本字符,放置在界定符“/”之间,规定表单填写的文本格式。如上图邮箱填写文本框,规定邮箱必须拥有“@”与“.”,否则提示错误。 2、使用正则表达式编写程序验证电话号码或url地址。 Js核心代码: function checkregtels(regtels){ var str=regtels; var Expression=/^(\d{3}-)(\d{8})$|^(\d{4}-)(\d{7})$|^(\d{4}-)(\d{8})$/; var objExp=new RegExp(Expression); st(str)==true){ return true; }else{ return false; } } function chkreg(form,label){ if(label==1 || label=="all"){ l.value==""){ check_mtel.innerHTML="请输入电话号码!"; return false; }else if(!l.value)){ js正则表达式验证数字和字母 check_mtel.innerHTML="电话号码的格式不正确!"; return false; }else if(l.value)){ check_mtel.innerHTML="电话号由数字组成!"; return false; }else{ check_mtel.innerHTML=""; } } Index.php <td height="30" align="right">固定电话:</td> <td height="30" colspan="2" align="left"> <input type="text" name="gtel" size="20" onBlur="chkreg(reg_check,6)"> <div id="check_gtel"></div></td> <td height="30" align="right">移动电话:</td> <td height="30" colspan="2" align="left"> <input type="text" name="mtel" size="20" onBlur="chkreg(reg_check,5)"> <div id="check_mtel" ></div></td> Index_ok.php核心代码: <td height="22" align="right" class="style4" >手机:</td> <td align="left" class="style4"> <?php echo $_POST[mtel];?></td> <td height="22" align="right" class="style4" >电话:</td> <td align="left" class="style4"> <?php echo $_POST[gtel];?><strong></strong></td> 3、字符串:$text = "华北科技学院电子商务B11-1、2、3班电子商务应用开发技术课程"; 请编写程序截取该字符串的前16个字。 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <?php $str = "华北科技学院电子商务B11-1、2、3班电子商务应用开发技术课程"; function msubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else $tmpstr .= substr($str, $i, 1); } return $tmpstr; } function showShort($str,$len) { $tempstr = msubstr($str,0,$len); if ($str<>$tempstr) $tempstr.= "/"; return $tempstr; echo $tempstr; } echo showShort($str,27); ?> 4、某字符串:$pizza = "a1 a2 a3 a4 a5 a6"; //通过空格分隔 请编写程序以空格作为分隔符分隔该字符串并分别输出。 <?php $pizza = "a1 a2 a3 a4 a5 a6"; $abc = explode(" ",$pizza,6); print_r($abc); ?> 5、某表单如下,请编写获取表单的程序: <?php if (($_POST["submit"]=="提交")&&($_POST["fond"]! =null)){ echo "姓名:".$_POST["user"]."<br/>"; echo "性别:".$_POST["sex"]."<br/>"; echo "密码:".$_POST["pwd"]."<br/>"; echo "学历:".$_POST["select"]."<br/>"; echo "爱好:"; for ($i=0;$i<count($_POST["fond"]); $i++) echo $_POST["fond"] [$i]." "; echo"<br/>"; echo "个人简介:".$_POST["intro"]."<br/>"; } ?> 6、利用ajax或JQuery实现表单验证。运行3-6文件夹中的程序并理解ajax或JQuery实现表单验证的方法。 7、编写程序利用copy 函数实现文件的上传。 test3.7.php <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>文件上传</title> </head> <body> <?php if($_POST['post_flag']==1) { $a=copy($myfile,"upload_file/".$myfile_name); } ?> <form enctype="multipart/form-data" action="index2.php" method="post"> 您的大名: <input type=text name=user><br> 文件名称: <input name="myfile" type="file"><br> <input type="hidden" name="post_flag" value="1"> <input type="submit" value="提交"> </form> </body> </html> Index2.php <?php $myfile = $_FILES['myfile']['tmp_name']; if($myfile != "") { if(copy($myfile,$_FILES['myfile']['name'])) { echo "上传成功"; } else { echo "上传失败"; } unlink($myfile); } else { echo "没有可上传的文件"; } ?> 8、利用php中的文件处理技术编写程序如下:请运行该程序并理解。 <?php $filename = ''; $somecontent = "我先被写入的!\r\n"; $somecontent1 = "我后被写入的!\r\n"; // 首先我们要确定文件存在并且可写 if (is_writable($filename)) { // 在这个例子里,将使用只写模式打开$filename // 文件指针将会在文件的开头,如果原来文件中有其他数据,则会被删除 if (!$handle = fopen ($filename, "w")) { print "不能打开文件 $filename"; exit; } // 将$somecontent写入到我们打开的文件中。 if (!fwrite($handle, $somecontent)) { print "不能写入到文件 $filename"; exit; } print "成功地将\" $somecontent \"写入到文件$filename<br>"; fclose($handle); $handle = fopen ($filename, "w"); //再次打开 //继续打开文件写入另外一个字符串,原来写入的数据则被清除 fwrite($handle, $somecontent1); fclose($handle); print "成功地将\" $somecontent1 \"写入到文件$filename"; } else { print "文件 $filename 不可写"; }?> 9、请编写程序实现动态页面转化为静态页面。 d.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>{title}</title> </head> <body> {file} </body> </html> test3.9.php <?php $title = "标题"; $file = "文件"; $fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("d.html")); $content = str_replace ("{file}",$file,$content); $content = str_replace ("{title}",$title,$content); $filename = "test.html"; $handle = fopen ($filename,"w"); if (!is_writable ($filename)){ die ("文件:".$filename."不可写,请检查其属性后重试!"); } if (!fwrite ($handle,$content)){ die ("生成文件".$filename."失败!"); } fclose ($handle); //关闭指针 die ("创建文件".$filename."成功!"); ?> 10、使用类编写程序如下:请运行该程序并理解。 <?php class Foo //定义基类 { //使用static关键字定义变量 public static $my_static = 'foo'; public function staticValue() { return self::$my_static; } } class Bar extends Foo //创建基类 { public function fooStatic() { return parent::$my_static; //返回基类的变量$my_static } } //打印基类的$my_static变量 //虽然没有创建类实例,但是可以直接访问static变量 print 'Foo::$my_static结果为'.Foo::$my_static . "<br>"; $foo = new Foo(); //创建基类实例 print $foo->staticValue() . "<br>"; //通过方法放回static变量 print $foo->my_static . "<br>"; // $my_static 为未定义的属性,所以为空 //通过子类访问$my_static print Bar::$my_static . "<br>"; $bar = new Bar(); print $bar->fooStatic() ; //返回父类的static变量?> 11、利用类编写程序实现文件上传。 test3.11.php <?php $Submit = $_FILES['Submit']['tmp_name']; if ($Submit != '') { $fileArr['file'] = $file; $fileArr['name'] = $file_name; $fileArr['size'] = $file_size; $fileArr['type'] = $file_type; $filetypes = array('gif','jpg','jpge','png','txt'); $savepath = "C:\AppServ\myphp\"; $maxsize = 0; $overwrite = 0; $upload = new upload($fileArr, $file_name, $savepath, $filetypes, $overwrite, $maxsize); if (!$upload->run()) { echo "上传失败".$upload->errmsg(); }}?> 12、php显示中文时,经常出现乱码,请编写一个编码转换类,从而实现编码的自动转换。 <?php class changecode{ private $str; private $input; private $output; function __construct($input='',$output='gb2312'){ $this->input = $input; $this->output = $output; } protected function chgcode($str){ if($this->input != ''){ $this->str = iconv($input,$output,$str); }else{ $this->str = mb_convert_encoding($str,$output); } } function getStr($str){ $this->chgcode($str); return $this->str; } function setInput($input){ $this->input = $input; } function setOutput($output){ $this->output = $output; } function getInput(){ return $this->input; } function getOutput(){ return $this->output; } } ?> 13、做web开发时,需要对各种情况作出处理,并输出相应的处理。请编写一个输出类,根据不同的情况,输出不同的处理结果。 test3.13.php: <table border="0" cellpadding="0" cellspacing="0"> <form method="post" action=" test3.13_2.php "> <tr> <td>请输入用户名称:</td> <td><input name="name" type="text" size="20" value="" /></td> </tr> <tr> <td><input type="submit" value="确认" /></td> </tr> </form> </table> test3.13_2.php: <?php include_once "function.php"; if($_POST['name'] != "刘昊"){ $tm -> refurbish('用户名错误'); }else{ $tm -> skipachange('登陆成功','main.php'); } ?> function.php <?php class TakeMsg{ function __construct(){ } function simpleMsg($mess){ echo $mess; } function skipachange($mess,$url=NULL){ if(!is_null($url)){ echo "<script>alert('".$mess."');location='".$url."';</script>"; }else{ echo "<script>alert('".$mess."');load;</script>"; } } function refurbish($mess,$sec=3,$url=NULL){ if(is_null($url)){ $hr = $_SERVER['HTTP_REFERER']; echo $mess.'<br>'; echo '页面将于'.$sec.'秒后跳转。如果没有跳转,请点击这里<a href="'.$hr.'">返回</a>'; echo '<meta http-equiv="refresh" content="'.$sec.';url='.$hr.'"/>'; }else{ echo $mess.'<br>'; echo '页面将于'.$sec.'秒后跳转。如果没有跳转,请点击这里<a href="'.$url.'">返回</a>'; echo '<meta http-equiv="Refresh" content="'.$sec.';url='.$url.'">'; } } } $tm = new TakeMsg(); ?> main.php <?php include_once "function.php"; $tm -> simpleMsg('欢迎光临'); ?> |
四、实验内容和步骤(续) |
五、实验结果分析与总结 次实验我基本掌握了正则表达式的使用方法,也实现了利用正则表达式限定表单输入值,同时也学会了php获取html表单数据的方法,理解了php中的文件处理的使用方法和类的创建方法,在实验过程中对于函数的编写和调用还比较生疏,需要参考书本和实例来完成,而且对于类的创建和使用还需要多学习。 |
实 验 报 告 说 明
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论