PHP题: 一次性上传 5 个 gif 图片到 upload 目录,每图片大小不能超过 100KB;
当其中任何一个图片不符合要求/已存在同名文件/复制图片出现错误时,
删除已复制的文件并给出错误提示。
1<form action="test.php" enctype="multipart/form-data"method="POST">
2 file1:<input type="file" name="gif1" value=""/><br />
3 file2:<input type="file" name="gif2" value=""/><br />
4 file3:<input type="file" name="gif3" value=""/><br />
5 file4:<input type="file" name="gif4" value=""/><br />
6 file5:<input type="file" name="gif5" value=""/><br />
7 <input type="submit" name="submit" value="上传">
8form>
9php
10define("FileDocument",'C:\wamp\www\test\upload\\');
11function upload($oFile)
12{
13 if(! is_dir(FileDocument))
14 mkdir(FileDocument);
15 $result = move_uploaded_file($oFile['tmp_name'],FileDocument.$oFile['name']);
16 if($result == 1)
17 echo $oFile['name']."上传成功。";
18 else
19 echo $oFile['name']."上传失败。";
20}
21function validateInfo($oFile)
22{
23 $info = "";
24 $mimeType ="image/pjpeg";
25 if($oFile['type'] != $mimeType)
26 {
27 if($oFile['type']!='')
28 {
29 $info .= "文件 ".$oFile['name']." 是".$oFile['type']."文件格式,而不是".$mimeType."格式文件。";
30 }
31 else
32 {
33 $info .= "文件 ".$oFile['name']." 不是$mimeType格式文件。";
34 }
35 }
36 else
37 {
38 $filename = FileDocument.$oFile['name'];
39 if(file_exists($filename))
40 {
41 $info .= "文件 ".$oFile['name']."已存在。";
42 }
43 else
44 {
45 if($oFile['size'] >= 102400)
46 {
47 $info .= "文件 ".$oFile['name']."大小超过100kb。";
48 }
49 }
50 }
51 return $info;
52}
53
54function processUpload($oFile)
55{
56 if(isset($oFile))
57 {
58 if(is_uploaded_file($oFile['tmp_name']))
59 {
60 $info = validateInfo($oFile);
61 if($info =='')
62 upload($oFile);
63 else
64 echo $info;
65 }
66 }
67}
68
69processUpload($_FILES['gif1']);
70processUpload($_FILES['gif2']);
71processUpload($_FILES['gif3']);
72processUpload($_FILES['gif4']);
73processUpload($_FILES['gif5']);
74
75/*PHP题: 一次性上传 5 个 gif 图片到 upload 目录,每图片大小不能超过 100KB;
76当其中任何一个图片不符合要求/已存在同名文件/复制图片出现错误时,
77删除已复制的文件并给出错误提示。
78*/
79?>
PHP正则题: 用户用在线编辑器发布文章时,粘贴了多幅远程图片.
要求把找出远程图片的路径,把它保存到本站服务器,并把图片路径重写为本地服务器地址.
如
$content = '如图所示: ';
找出图片 "" 保存为 attachment/1.gif 后,改写文章内容为
$content = '如图所示: ';
1php
2define("FileDocument",'C:\wamp\www\test\\');
3$content = <<< CONTENT
4如图所示: <img src="http://www.gdut.edu.cn/newgdut/images/gdut_top-1.jpg" alt="图1" /><br />
5如图所示: <img src="" alt="图2" /><br />
6如图所示: <img src="http://www.phpweblog.net/images/xml.gif" alt="图3" /><br />
7CONTENT;
8// 回调函数
9function ChangeToLocal($matches)
10{
11 $path = $matches[4];//图片链接
12 $para = split("[\/]",$path);
13 $filename = end($para);
14 if(preg_match("/\.(gif|jpeg|jpg|png|bmp)$/i",$filename))
15 {
16 down($path,$filename);
17 return ereg_replace($path,"./".$filename,$matches[0]);//$path;
18 }
19 return "";
20}
21
22function down($url,$filename) //下载图片
23{
24 if(!is_dir(FileDocument))
25 mkdir(FileDocument);
26 $localfile = FileDocument.$filename;
27 //设置获取基本变量
28 //打开远程文件
29 $fp = fopen($url, "rb");
30 if (!$fp){
31 exit();
32 }
33 //打开本地文件
34 $sp = fopen($localfile, "wb");
35 if (!$sp){
36 exit();
37 }
38 //下载远程文件
39 //echo "Downloading, please waiting\n\n";
40 while (!feof($fp)){
41 $tmpfile .= fread($fp, 1024);
42 }
43 //保存文件到本地
44 fwrite($sp, $tmpfile);
45 fclose($fp);
46 fclose($sp);
47 //echo "Download file ". $filename ." succeed!\n\n";
48}
49
50$content = preg_replace_callback("/(")(.*)(\")(.*)\/>/Ui","ChangeToLocal",$content);//用回调函数执行正则表达式的搜索和替换
51echo $content;
52?>
MySQL 题:下面的语句用order by,要求先小写字母,再大写字母,后数字的升序排列:
CREATE TABLE `tjob` (
`title` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
) ENGINE = MYISAM;
INSERT INTO `tjob` VALUES ("11"), ("22"), ("33"), ("aa"), ("bb"), ("cc"), ("AA"), ("BB"), ("CC");
SELECT * FROM `tjob`
提示: 正确的查询结果应为
aa
bb
cc
AA
BB
CC
11
22
33
SELECT * FROM `tjob` ORDER BY `title` COLLATE SQL_EBCDIC273_CP1_CS_AS
(搜索出来的方法,还没测试成功。主要就是SQL_EBCDIC273_CP1_CS_AS 这个校对规则没有设置好。)
MySQL 题:
MySQL版本为 5.0;论坛默认是"显示30天前的帖子",其查询语句为:
$fromtime = time() - 86400*30; //30天前的当前时刻
mysql_query("select * from threads where forumid=1 and posttime>$fromtime ");
后来改为:
$day = getdate(time()-86400*30);
$fromtime = mktime(0,0,0,$day['mon'],$day['mday'],$day['year']); //30天前的 00:00:00
mysql_query("select * from threads where forumid=1 and posttime>$fromtime ");
请问:这样改有什么好处?请说明理由。
在对查询结果要求不高,两者均符合要求的情况下,有没有必要进行更改,为什么?
答:改了之后,就可以查询到第三十天前的零时到现时的记录。改了比较好,更加符合默认设置。
JavaScript 题:
页面编码为utf-8,因数据库的限制,表单域 details 的输入长度不能超过 250 个字节。
编写 JavaScript 程序,用户在 details 中输入后提示所含的字节数为多少,若超过 250 个字节,则自动更改其内容为<=250个字节。
提示:
utf-8 编码中:
每个英文字母、数字所占的空间为1 字节;泛欧语系、斯拉夫语字母占2字节(如αβπ);汉字占3字节。
自动截短时,总字节数应为 248~250 个。
JavaScript 题:
循环输出 5 个输入框,初始值为空。
任何一个失去焦点(包括焦点移到另一个输入框)时,检查该控件的值,若为空或非数字,清空控件的值并把焦点重新置于该控件。
提示:注意不要造成死循环!
HTML 题:
我们有时要做下拉导航菜单,但浮动层常被页面的 SELECT 表单、Flash 等遮住。
请说下解决的思路。
阅读(752) | 评论(0) | 转发(0) |