往事依依,随风而行。淡忘过去的一切,在风中迎接新的希望。
浏览模式: 标准 | 列表 | 无广告Tag:php

SABLOG-X改计划应该提上日程了。。

最近垃圾评论实在是太严重了。

后台编辑器也是问题重重呀。

研究完N900就把blog改改吧,2周删1000条评论我可

受不了!

Tags: sablog, php

【喔喔】新喔喔系统

10天时间吧  把wowoo的新整站程序弄得差不多了

其实我每天也没写什么,中午起床,下午看神话,晚上跟某猪聊聊天 也没几个时间写代码。

感觉代码质量不高

基本抄了许多sablog的源码,本来要抄dz的 但是dz放的时间太久了  有点忘了。

sablog写的还算不错 , 不过有些文件也有些瑕疵。 估计是4ngel 累了吧。

目前我把后台写的差不多了  主页没写  改天加个ip。

就差个主页了。

前台注册 登录 flv显示 搞定  差主页和分类了。

话说上模板有些困难。主要是我编辑模板用了很长的时间。不知道为什么 怎么改heml都看着不顺眼,可能是天生美哟艺术细胞的原因吧。

后台模板直接用sa的了 其实用dz的了  漂亮。。但是我懒得去改代码了。。。。。

懒。。。。

睡觉

快开学了。

中国快放假了/。

Tags: 喔喔, php, 弹幕

弹幕播放器

今天用了2个小时把弹幕播放器改了下,感觉还可以吧

下一步美化:
1 sm问题
2 评论时间
3 大小


今天也把配套的评论系统写了一下 只完成了
input.php 进度缓慢。。。


测试地址http://beta.wowoo.net/

Tags: 开发日志, php, 弹幕

新相册程序上架~~

忙了2天终于把这个新相册程序搞定了~
mg2+某人的js代码。。。

可以说这个相册是一个mg2的hack 使用了mg2的引擎。

目前没有搞定加密相册的访问问题,多语言支持也有点问题。

下一步计划 加入mysql的支持 然后把数据库部分重写,脱离mg2的约束

http://album.v70.us

 [attach=58]

Tags: 相册, php

【PHP】php转化图片为ascii字符画

打dota满员了没进去,正好也是闲着,就写一写这个吧。
用php转化图片为ascii字符画。
目前ascii字符画我只明白灰度的原理,对于彩色字符画不懂。
那种只用了一个字符靠颜色不同而生成的字符画我觉得不应该叫做ascii字符画。
那种原理更加的简单,读取一个像素点的颜色然后输出 <font color=#******>字符</font>就ok了,
但这种的弊端就是html文件十分大,如果一副200*120的绚丽色彩图片html能达到8mb。
解决的办法就是降低色彩的位数。这个图出了显示技术外,我觉得没有什么实际用处。


下面介绍ascii字符画,ascii字符画就是用ascii字符(asdfgh!@¥什么的都是ascii字符)来表示不同的灰度,
此技术的难点是ascii字符灰度表,灰度表的好坏决定了图片的好坏。
计算ascii字符的灰度并不是只计算改ascii字符所占的像素。
因为在10号字很多ascii所占像素值是相同的,还有有些字符即使占得像素很多但是他留白的地方也很多。
8和H的像素一样多 可能h还有多一些,但是在远处看  8组成的画要比 H组成的更黑一些。
我自己计算了3个灰度表感觉都不是很理想,经过多方面查找找到了一个比较不错的灰度表。
色阶是63bit的,已经足够了。
我自己做了个24bit感觉很缺颜色,只是表现出大体的,具体细节都丢失了。

63bit的ascii灰度表我只有php的了,在网上找的那个被我删了。。。。

PHP代码
  1. $gray = array(  
  2. '0' => '64' ,  //前面为灰度值 0是黑色 62是白色   后面为字符的ascii码
  3. '1' => '35' ,  
  4. '2' => '36' ,  
  5. '3' => '37' ,  
  6. '4' => '38' ,  
  7. '5' => '56' ,  
  8. '6' => '66' ,  
  9. '7' => '77' ,  
  10. '8' => '87' ,  
  11. '9' => '42' ,  
  12. '10' => '109' ,  
  13. '11' => '119' ,  
  14. '12' => '113' ,  
  15. '13' => '112' ,  
  16. '14' => '100' ,  
  17. '15' => '98' ,  
  18. '16' => '107' ,  
  19. '17' => '104' ,  
  20. '18' => '97' ,  
  21. '19' => '111' ,  
  22. '20' => '81' ,  
  23. '21' => '48' ,  
  24. '22' => '79' ,  
  25. '23' => '90' ,  
  26. '24' => '88' ,  
  27. '25' => '89' ,  
  28. '26' => '85' ,  
  29. '27' => '74' ,  
  30. '28' => '67' ,  
  31. '29' => '76' ,  
  32. '30' => '116' ,  
  33. '31' => '102' ,  
  34. '32' => '106' ,  
  35. '33' => '122' ,  
  36. '34' => '120' ,  
  37. '35' => '110' ,  
  38. '36' => '117' ,  
  39. '37' => '118' ,  
  40. '38' => '99' ,  
  41. '39' => '114' ,  
  42. '40' => '91' ,  
  43. '41' => '93' ,  
  44. '42' => '123' ,  
  45. '43' => '125' ,  
  46. '44' => '49' ,  
  47. '45' => '40' ,  
  48. '46' => '41' ,  
  49. '47' => '124' ,  
  50. '48' => '47' ,  
  51. '49' => '63' ,  
  52. '50' => '73' ,  
  53. '51' => '108' ,  
  54. '52' => '33' ,  
  55. '53' => '105' ,  
  56. '54' => '62' ,  
  57. '55' => '60' ,  
  58. '56' => '43' ,  
  59. '57' => '95' ,  
  60. '58' => '126' ,  
  61. '59' => '45' ,  
  62. '60' => '59' ,  
  63. '61' => '44' ,  
  64. '62' => '46' ,  
  65.   
  66. );  

灰度表完成了 就可以把图片转换成ascii字符画了。

大致原理是 ,读出每一个像素的颜色信息 。(先计算长和高,然后for语句)
读像素的颜色我用的是php的gd库

PHP代码
  1. $colorIndex = imagecolorat($img,$xx,$yy);  
  2. $color = imagecolorsforindex($img,$colorIndex); 

不过这个信息rgb是分开的,而灰度的rgb的值是相同的。
就需要转换了。在网上找到的公式 $gray = 0.3*$color[red] + 0.59*$color[green] +  0.11*$color[blue];
灰度是256bit的,而我们只有63bit 那么做个简单的加减法运算就可以了。
最后echo一下字符就ok了。

本人才疏学浅,程序就不放了,免得被人笑话。
我相信你们写这个程序也就几分钟而已 。^_^

继续dota了,上一篇日志是做完的视频。

我的word都毁了  word2007打开txt 在存成docx有bug 空格自动没了。。。倒是字符画参差不齐。。。

最后提醒一句字体要用等距的 比如宋体



ps 自己感觉程序执行时间还可以,一张150.*120的图片 0.759s
717张用时250多s

Tags: php, 字符画, 技术

lemp下的zend与eaccelerator共存

最近服务器上要安个dz3.12玩,没有zend是没法运行代码的。

以前出过dezend版,但是效果不大理想,毕竟dz3.12是用php4编的。dezend后再用php5运行报错挺多的。改了一部分 仍然报错,索性就懒得改了,直接用zend了。

本人服务器的总体思路按张宴所写的 Nginx 0.7.x PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版)架设的。

所以eaccelerator早已安装好了。php使用php-fpm启动的fast-cgi。

首先先安装eaccelerator(安装好的跳过)。因为是给php加载模块,所以先把php停止了。

具体的是  ps -aux 找到php进程的pid 然后用kidd 直接kill掉。

eaccelerator的安装

wget http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.5.3.tar.bz2

tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3/
/usr/local/webserver/php/bin/phpize(把/usr/local/webserver/php改成php安装目录)
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config(把/usr/local/webserver/php改成php安装目录)
make
make install
cd ../

给eaccelerator加缓存目录 (目录可自定义)

mkdir -p /usr/local/webserver/eaccelerator_cache
修改php配置文件(默认安装在/etc)

vi /usr/local/webserver/php/etc/php.ini

在最后加上 shift+g跳转到页尾

代码
  1. [eaccelerator]   
  2. zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"  
  3. eaccelerator.shm_size="64"  
  4. eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"  
  5. eaccelerator.enable="1"  
  6. eaccelerator.optimizer="1"  
  7. eaccelerator.check_mtime="1"  
  8. eaccelerator.debug="0"  
  9. eaccelerator.filter=""  
  10. eaccelerator.shm_max="0"  
  11. eaccelerator.shm_ttl="3600"  
  12. eaccelerator.shm_prune_period="3600"  
  13. eaccelerator.shm_only="0"  
  14. eaccelerator.compress="1"  
  15. eaccelerator.compress_level="9"  

 检查eaccelerator是否加载 进入php安装目录的bin子目录

./php -v

如果出现with eAccelerator v0.9.5.3

PHP 5.2.10 (cli) (built: Jul 20 2009 09:54:57)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
则证明eAccelerator安装成功。

然后安装zend。

先下载zendOptimizer。要按照系统的架构选择包。我在瑞豪开源(www.rashost.com)买的vps,架构是x86-64。

我建议去phpchina下载,zend的官网要注册很麻烦的。

http://www.phpchina.com/download/list.php?sort=ZendOptimizer

本人直接下载x86-64的ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz

wget http://www.phpchina.com/download/soft/zend/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz

解压

tar zxvf ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz

cd ZendOptimizer-3.3.3-linux-glibc23-x86_64

./install.sh

按照提示进行安装。

会提示输入php。ini所在的目录,默认安装会在/etc

最后提示是否为apache。选no

zend就自动安装好了,注意[zend]要在php。in的i最后否则 eAccelerator会出问题

zend会自动在php.ini所在目录建立一个链接,链接到zend文件夹的php.ini

好像说只有php.ini在zend目录里面才能加载zend。

检测下zend的加载

进入php安装目录的bin子目录下

./php -v

PHP 5.2.10 (cli) (built: Jul 20 2009 09:54:57)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
好了Zend Optimizer成功加载。

到此lemp下的Zend Optimizer 和eAccelerator 共存就安装完成了。

 扔进去个zend加密的文  件看看是不是成功执行了。

Tags: lemp, php, zend, 服务器