首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP与模板与代码加密/优化 » [转帖]一个日历程序  


  作者:pnrj7999
  注册时间:2005-04-04
  主题/回复:73/43
  积分:813
  等级:★★★(六级)
  称号:声名鹊起

用户联系方式已设置为保密

 

 发表:2005-04-26 01:07:51 阅读 1973 次 回复 0 次 得分0  |   字号 字色
[转帖]一个日历程序
<? 
################ 
# Calendar.php - 创建一个当天日期为高亮度的日历GIF图片。
# 使用到了GD 函数库存和TTF字体 -可以被改变成 PNG格式的图片, 当然,如果
# 你想要的是一个拥有一个透明背景的图片除外,这个改动是可以被很容易得
# 完成,最后,我们把图片写到一个叫 dategif/ 的目录,并且用当天的日期来 
# 命名该图片的名字。(如:20000204.gif)这个GIF图片一般情况只会有5K或
# 是7K的大小。
#  
# 这段程序你可以以任意地方使用,该文档或支持对每个人都是免费的,但是请
# 不要把该程序用于买卖,你可以剪切、拷贝或是毁坏这段程序,只要你喜欢,
# 并且,你不用为了用它而给我付费!如果你需要帮助或是你真的很喜欢这段程
# 序,请给我来封信,以让我知道,你看好吗?
# 二月四日4, 2000 由  Matt Florell ( mattf@mail.com ) 
################ 

Header(  "Content-type: image/gif"); 

 #创建一幅图片
$im = ImageCreate(156, 142); 
 # 设置颜色
$black = ImageColorAllocate($im, 50, 50, 50); 
$white = ImageColorAllocate($im, 255, 255, 255); 
$orange = ImageColorAllocate($im, 255, 200, 0); 
$yellow = ImageColorAllocate($im, 255, 255, 0); 
$tan = ImageColorAllocate($im, 255, 255, 190); 
$grey = ImageColorAllocate($im, 205, 205, 205); 
$dkgrey = ImageColorAllocate($im, 140, 140, 140); 

###灰线 ### 
  #边框线
    ImageRectangle($im, 1, 1, 155, 141, $dkgrey); 
  #水平线
    ImageRectangle($im, 1, 22, 155, 39, $dkgrey); 
    ImageRectangle($im, 1, 56, 155, 73, $dkgrey); 
    ImageRectangle($im, 1, 90, 155, 107, $dkgrey); 
    ImageRectangle($im, 1, 107, 155, 124, $dkgrey); 
  #垂直线
    ImageRectangle($im, 23, 22, 45, 141, $dkgrey); 
    ImageRectangle($im, 67, 22, 89, 141, $dkgrey); 
    ImageRectangle($im, 111, 22, 133, 141, $dkgrey); 

### 白线 ### 
  #外框线 
    ImageRectangle($im, 0, 0, 154, 140, $white); 
  #水平线
    ImageRectangle($im, 0, 21, 154, 38, $white); 
    ImageRectangle($im, 0, 55, 154, 72, $white); 
    ImageRectangle($im, 0, 89, 154, 106, $white); 
    ImageRectangle($im, 0, 106, 154, 123, $white); 
  #垂直线 
    ImageRectangle($im, 22, 21, 44, 140, $white); 
    ImageRectangle($im, 66, 21, 88, 140, $white); 
    ImageRectangle($im, 110, 21, 132, 140, $white); 



### 在上面写数字

$today = date( "d"); 
$month = date( "m"); 
$year = date( "Y"); 
$datecode = date( "Ymd"); 
$gif =  '.gif'; 
    $first=mktime(0,0,0,$month,1,$year); 

    $mon_yr=date( "F Y", $first); 

    $wd=date( "w",$first); 
 #if ($wd==0) { $wd=7;} 
    $lastday=date( "d",mktime(0,0,0,$month+1,0,$year)); 
    $cur=-$wd+0; 
    $ver_position = 50; 
    for ($k=0;$k<6;$k++) { 
    $day_position = 5; 
     $last_row_used = 0; 
  for ($i=0;$i<7;$i++ ) { 
  $cur++; 
    $sing_add = 0; 
  if (($cur<=0) || ($cur>$lastday) ) $day_position = ($day_position + 22); 
     else 
    { 
    $day_color = $grey; 
    if ($day_position<10) $day_color = $tan; 
    if ($cur==$today) $day_color = $yellow; 

    if (strlen($cur)<2) {$sing_add = 4;} 
    $fin_position = ($day_position + $sing_add); 
     
  ImageTTFText($im, 12, 0, $fin_position, $ver_position, $day_color,  "./fonts/arialbd.ttf",  "$cur"); 
     
    $day_position = ($day_position + 22); 
    $last_row_used = 1; 
    } 
  }   
    $day_position = 5; 
    if ($last_row_used) $ver_position = ($ver_position + 17); 
    } 
# 月份和年份 (Arial字体、加粗、居中) 
$spc = 23; 
$st_add = 0; 
$st =  "$mon_yr"; 
$st_len = strlen($st); 
$st_margin = (14 - $st_len); 
if ($st_margin > 0) {$st_add = ($st_margin * 4);} 
$spc = ($spc + $st_add); 
ImageTTFText($im, 14, 0, $spc, 15, $white,  "./fonts/arialbd.ttf",  "$st"); 

# 星期的名字 
ImageString($im, 2, 3, 23,  "Sun", $orange); 
ImageString($im, 2, 25, 23,  "Mon", $orange); 
ImageString($im, 2, 47, 23,  "Tue", $orange); 
ImageString($im, 2, 69, 23,  "Wed", $orange); 
ImageString($im, 2, 91, 23,  "Thu", $orange); 
ImageString($im, 2, 113, 23,  "Fri", $orange); 
ImageString($im, 2, 135, 23,  "Sat", $orange); 

if ($ver_position<140)  
    { 
    $im_out = ImageCreate(156, 125); 
    $out_black = ImageColorAllocate($im_out, 50, 50, 50); 
    ImageRectangle($im, 1, 124, 155, 124, $dkgrey); 
    ImageCopyResized($im_out, $im, 0, 0, 0, 0, 156, 125, 156, 125); 
    ImageColorTransparent($im_out, $out_black); 
    ImageGIF($im_out,  "./dategif/$datecode$gif"); 
    ImageGIF($im_out); 
    ImageDestroy($im); 
    ImageDestroy($im_out); 
    } 
else 
    { 
    ImageColorTransparent($im, $black); 
    ImageGif($im,  "./dategif/$datecode$gif"); 
    ImageGif($im); 
    ImageDestroy($im); 
    } 

?> 
 
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.003sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版