依附于Discuz UCenter的子应用都会有一个选项: 意思很明白了,那它是如何实现的呢? UC/Control/user.php中有一个onsynlogin方法,这里就是处理同步登录的。 当调用该方法时,实际上会去调用该应用下api/uc.php文件,将用户名、密码及时间戳做为参数传递。 以上是实现的第一步。 第二步,当应用接收到UC的请求后,会调用uc_note类中的synlogin方法,该方法的核心是送一个P3P的HTTP头,然后种下COOKIE。 对于Disucz这种基于COOKIE验证的应用来说,就实现了同步登录。
Browsing the archives for the Develop category
这里只介绍非常非常初级的操作。 绘图时一般会经过4个过程: 1、准备好画布,并设定好宽、高以及填充色。 2、在画布上做绘图处理。 3、输出图片 4、清理资源。 在PHP中创建画布大体有二种方式: 1、直接创建一个指定宽高的画布,用imagecreate方法,只需指定宽与高即可。 2、以已有的图片为画图。基本上是在原有的图片上做二次处理。这里会涉及到多种图片格式了,方法名基本上以imagecreatefrom…开头。 创建一种颜色使用imagecolorallocate方法。 输出图片用imagepng/imagegif/imagejpg等方法生成不同格式的图片。 使用imagedestroy方法清理资源。 创建好画布后,就可以用imagestring方法书写文字了。 具体见下面的代码吧: 在线地址: http://yibin.us/demo/gd/index.php
OFC是一款功能强大的Flash图表控件, 网上有诸多关于它的介绍,其中官方还提供了Java/Perl/Php/.Net的相关类。 以前就想在asp.net环境下使用这款控件,但由于缺乏文档,官方的介绍比较少,一直没有真正去使用它提供的c#类库。 今天又重拾这款控件,不过是在php环境下。 可以在这里下载PHP类: http://teethgrinder.co.uk/open-flash-chart/perl-python.php 官方上提供的数据源大多是已经格式化好的.txt文件,但在实际运用的环境中,基本上是从数据库中读取数据再展示。 展示部分基本上搞定了,但目前还不知道如何去添加onclick事件。 先看在线的demo http://demo.yibin001.com/chart/chart.php 数据是随机生成的, 哪位达人告诉我如何添加事件-,- ps. google pagerank今天好像更新了,yibin001.com从3到了4,自把lemongtree.com做了301跳转后,lemongtree.com成0了。
PHP中的日期时间基本上基于UNIX时间戳来处理的。比如date/getdate()/mktime()/strftime()/strtotime/time等都与时间戳有着密切的关联。这些函数的用法可查阅相关文档,这里就不对这些函数作解释了。要将时间戳转为可读的形式,就需要date函数出马了,他需要二个参数:格式化字符串与时间戳。比较难记的是格式化字符,不过常用的也就是YymdwHis,其它的亦可参阅文档。 将可读的日期转为时间戳通常用以下二个函数:mktime如:$timestam = mktime(18,30,00,8,10,1981);将得到1981年8月10日下午6点30整的时间戳。另一个比较NB的是strtotime,看名字就是将字符串转为一个时间戳。它的NB之处不在于解析如:Tue,15 Mar 2005 15:23:52或2008-01-01此类的字符串,strtotime还可以“理解”一定的英语。如下面的代码: <?php date_default_timezone_set(“PRC”); $mydatestring = array(‘now’,'today’,'tomorrow’,'yesterday’,'thursday’,'this thursday’,'last thursday’,'+2 hours’,'-1 month’,’30 seconds’,'next week’,'last year’,’2 weeks ago’); foreach($mydatestring as $item) { echo “$item:”.date(‘r’,strtotime($item)).’<br />’; } ?> 输出: now:Sat, 28 Feb 2009 11:03:35 +0800today:Sat, 28 Feb 2009 00:00:00 +0800tomorrow:Sun, 01 Mar 2009 00:00:00 +0800yesterday:Fri, 27 Feb 2009 00:00:00 +0800thursday:Thu, 05 Mar 2009 [...]