站点升级
以前用的是wordpress1.3的night版,bug太多,一直没升级是因为程序的源代码被我修改了好多地方,升级比较麻烦,而且也没有想好新的样式。这次升级还算顺利,样式及插件都重新做了一遍,wp的1.5版确实改进了不少,制作样式时基本不需要修改源代码,这样以后升级也就方便多了。
改的比较仓促,希望大家发现错误或者有好的建议时在这里提醒我一下,谢谢!
以前用的是wordpress1.3的night版,bug太多,一直没升级是因为程序的源代码被我修改了好多地方,升级比较麻烦,而且也没有想好新的样式。这次升级还算顺利,样式及插件都重新做了一遍,wp的1.5版确实改进了不少,制作样式时基本不需要修改源代码,这样以后升级也就方便多了。
改的比较仓促,希望大家发现错误或者有好的建议时在这里提醒我一下,谢谢!
微软终于推出了msn中国的测试网站,但是感觉页面不是很整洁,颜色也有些花哨,内容基本上是那些合作伙伴的。地址:www.msn.com.cn
利用php的highlight_string和highlight_file函数进行代码加亮,分析加亮后的html代码,加上了两个小功能,显示行号及像现在流行的IDE一样伸缩代码块。
hightlight函数源代码及效果演示:demo.php
highlight($code, $isReturn = 0, $isStr = 1)
$code:字符串 要加亮的代码片断或者文件的名字
$isReturn:布尔型 直接显示还是作为字符串返回
$isStr:布尔型 指定$code参数是字符串还是文件名
完整源文件下载(包括图片、js、css及php源文件):highlight.rar
现在已知的还有些小错误,正在慢慢修改, wp插件制作中。andot 正在写一个php的多语言代码整理及加亮程序,敬请关注 www.CoolCode.cn
更新:在线制作eot字体:http://www.ugia.cn/nfo/eot.php
更新:因为以前的映射表不全而且有错误,andot从新做了影射表。现在使用压缩过的courier new字体做嵌入式字体,因为Lucida ConsoleP字体字符不全。nfo2html函数也优化了下,基本没有什么问题了。感谢andot的努力。
感谢nfo在我前面的一篇文章《在浏览器中以文本方式显示nfo文件的完美解决方案》对字符编码的建议,当时没有考虑网页编码的问题,所以这个方法在实际应用中会有些困难。因为在IE中必须指定网页编码为iso8859-1、firefox等其他浏览器中必须为utf-8编码才能正常浏览,当整合进现有的网站中时,会因为网页编码不相同导致乱码。解决这个问题的方法就是把nfo中的字符全部转化为十进制表示的html实体(NCR : Numeric character reference),这样不管网页编码是什么,都会正常显示了。
andot同学重新写了一个nfo2html来代替原先的nfo2txt,ie中还是使用eot字体,已经不需要特殊的字体了,courier new就可以,具体制作方法请参考我前面的那篇文章,firefox、netscape下通过字符映射表转化特殊字符,并把所有字符用十进制的html实体来表示。demo
wp插件显示效果如下:

完整代码(含wordpress插件)下载:nfo2html_and_wpplugin.rar
update: UGiA PHP UPLOADER V0.2已发布:http://www.ugia.cn/?p=70
利用php上传比较大的文件时,往往需要很长的等待时间,而且受网络和软件等的影响,经常会出现超时及上传失败的现象。如何在上传文件时实时的得到文件上传进度,以及如何避开php和其他因素的限制上传任意大小的文件呢?
php同asp等其他语言对上传文件的处理方式不同,asp中可以用Request.BinaryRead流式的读取客户端提交的数据。php是把文件存放在临时文件夹中,在文件上传完成后才能够获取其信息以及对其进行操作。如果在上传过程中我们能够得到其临时文件的文件名,我们就可以通过判断临时文件的大小来来得到上传进度,不过好像没有办法得到。所以我们只能通过其他方式,就是利用php的socket扩展建立一个简单的服务器,把数据post到这个服务器上,然后再用我们自己的机制来处理。
先说说流程,首先用php的socket函数库建立一个临时的http服务器,在某一端口监听,然后把ip地址和端口号通知客户端,客户端把上传表单提交到http://srvIpAddress:port(临时服务器), 临时服务器接受客户端请求,并读取post数据,分析并获取客户端上传的文件信息,把文件保存在服务器上,然后关闭临时服务器,释放资源,上传完成。 有点绕,不过思路还是简单的。
稍后我会发布一个类库,暂定名为:UGiA Visual PHP Uploader, 这样大家就可以在程序中很方便的调用了。效果如下:
