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="上传">
8
form>
9
php
10
define("FileDocument",'C:\wamp\www\test\upload\\');
11
function 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
}
21
function 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
54
function 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
69
processUpload($_FILES['gif1']);
70
processUpload($_FILES['gif2']);
71
processUpload($_FILES['gif3']);
72
processUpload($_FILES['gif4']);
73
processUpload($_FILES['gif5']);
74
75
/*PHP题: 一次性上传 5 个 gif 图片到 upload 目录,每图片大小不能超过 100KB;
76
当其中任何一个图片不符合要求/已存在同名文件/复制图片出现错误时,
77
删除已复制的文件并给出错误提示。
78
*/
79
?>
PHP正则题: 用户用在线编辑器发布文章时,粘贴了多幅远程图片.
要求把找出远程图片的路径,把它保存到本站服务器,并把图片路径重写为本地服务器地址.
如
$content = '如图所示:
';
找出图片 "" 保存为 attachment/1.gif 后,改写文章内容为
$content = '如图所示:
';
1
php
2
define("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 />
7
CONTENT;
8
// 回调函数
9
function 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
22
function 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);//用回调函数执行正则表达式的搜索和替换
51
echo $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 等遮住。
请说下解决的思路。
阅读(815) | 评论(0) | 转发(0) |