0

万年历

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php 
//修改页面编码
header("content-type:text/html;charset=utf-8");

//获取当前年
$year=$_GET['year']?$_GET['year']:date('Y');

//获取当前月
$month=$_GET['month']?$_GET['month']:date('m');

//获取当前月有多少天
$days=date("t",strtotime("{$year}-{$month}-1"));

//当前月的一号是周几
$week=date("w",strtotime("{$year}-{$month}-1"));

//所有内容居中
echo "<center>";

//输出表头
echo "<h2>{$year}年{$month}月</h2>";

//输出日期表格
echo "<table width=500 border=1>";
echo "<tr>";
echo "<th>周日</th>";
echo "<th>周一</th>";
echo "<th>周二</th>";
echo "<th>周三</th>";
echo "<th>周四</th>";
echo "<th>周五</th>";
echo "<th>周六</th>";
echo "</tr>";

//铺表格
for($i=1-$week;$i<=$days;){
echo "<tr>";
for($j=1;$j<=7;$j++){
if($i<=$days && $i>=1){
echo "<td>$i</td>";
$i++;
}
else{
echo "<td> </td>";
$i++;
}
}
echo "</tr>";
}

echo "<table width=500>";

//实现上一年和上一月
if($month==1){
$lasty=$year-1;
$lastm=12;
}else{
$lasty=$year;
$lastm=$month-1;
}

//实现下一年和下一月
if($month==12){
$nexty=$year+1;
$nextm=1;
}else{
$nexty=$year;
$nextm=$month+1;
}

//输出上一月和下一月的按钮
echo "<a href='calendar.php?year=$lasty&month=$lastm'>上一月</a>";
echo "|";
echo "<a href='calendar.php?year=$nexty&month=$nextm'>下一月</a>";

echo "</center>";

?>

验证码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php 
//vcode(int $width,int $height,int $fontsize,int $vcode_number,$int $interferon_number)
//可以根据需要在传入其他参数,例如字体、干扰素个数等
function vcode($w,$h,$size,$fontn,$internum){
//开启session
session_start();

//准备画布资源
$im=imagecreatetruecolor($w,$h);

//准备涂料
$black=imagecolorallocate($im,0,0,0);
$white=imagecolorallocate($im,255,255,255);
$green=imagecolorallocate($im,0,255,0);

//背景填充
imagefill($im,0,0,$white);

//加干扰素
for($i=0;$i<$internum;$i++){
imagesetpixel($im,mt_rand(0,$w),mt_rand(0,$h),$black);
}
for($i=0;$i<6;$i++){
imageline($im,mt_rand(0,$w),mt_rand(0,$h),mt_rand(0,$w),mt_rand(0,$h),$black);
}
for($i=0;$i<4;$i++){
imageline($im,mt_rand(0,$w),mt_rand(0,$h),mt_rand(0,$w),mt_rand(0,$h),$green);
}


//文字坐标
$x=($w-$size*4)/2+$size/2;
$y=($h-$size)/2+$size;

//准备文字
$arr=array_merge(range(0,9),range(a,z),range(A,Z));
shuffle($arr);
$str=join("",array_slice($arr,0,$fontn));

//把$str放入session中,方便在所有页面使用
$_SESSION['vstr']=$str;

$font='font/CENSCBK.TTF';
imagettftext($im,$size,0,$x,$y,$black,$font,$str);

//输出最终图像或保存最终图像
header("content-type:image/png");
imagepng($im);

//释放画布资源
imagedestroy($im);
}

vcode(100,50,20,4,300); //调用函数

?>

图片缩放

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php 
function scale($maximagefile,$small_per){
$maxfile=$maximagefile;
//大图宽高
$arr=getimagesize("{$maxfile}");
$maxw=$arr[0];
$maxh=$arr[1];
$maxtype=$arr[2];
$maxmime=$arr["mime"];

//大图资源
$maxim=imagecreatefromjpeg("{$maxfile}");

//等比例缩放
$percent=$small_per;
//小图资源
$minw=floor($maxw*$percent);
$minh=floor($maxh*$percent);
$minim=imagecreatetruecolor($minw,$minh);

//把大图缩放成小图
imagecopyresampled($minim, $maxim, 0,0,0,0,$minw, $minh, $maxw, $maxh);

//小图输出
header("content-type:{$maxm}");

//判断类型
switch ($maxtype) {
case '1':
$imageout="imagegif";
break;
case '2':
$imageout="imagejpeg";
break;
case '3':
$imageout="imagepng";
break;
}

// $imgout($minim);
$minfile="s_".$maxfile;
$imageout($minim,$minfile);

//释放大小图资源
imagedestroy($maxim);
imagedestroy($minim);
}

scale("music.jpg",0.5); //调用函数
?>

水印

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 
$maxim=imagecreatefromjpeg("music.jpg");
$minim=imagecreatefrompng("logo.png");
$maxw=imagesx($maxim);
$maxh=imagesy($maxim);
$minw=imagesx($minim);
$minh=imagesy($minim);

$maxx=$maxw-$minw;
$maxy=$maxh-$minh;
imagecopy($maxim,$minim,$maxx,$maxy,0,0,$minw,$minh);

header("content-type:image/jpeg");
imagejpeg($maxim);
?>