思维定势

整天坐在电脑前只能使效率下降,坐久了就没了思路,脑子僵硬。 昨天用Smarty改写的picviewer在处理循环时两个tr标签只要用一个if就可以完成,不过就是还用phplib的思路去想,用了两个if,结果弄了半天,才勉强弄好。 昨晚在广场吹风,才突然发现其实不用那么复杂的思路,很简单的一个if就可以了。 以后要注意这个问题!

用Smarty写的picviewer

下午试着用Smarty重写picviewer,还比较顺利。

使用Smarty前要建templates, templates_c, configs ,cache四个目录才能使用

Smarty模板的建立要比PHPLIB复杂一点,但功能较强,输出控制也简单得多,速度差别还没多大感觉。

顺便还发现了picviewer(PHPLIB)的一个bug,就是最后嵌套完后剩余不足一层的图片不会显示出来,只要在循环之外将外层block再parse一次就可以了。

完善了picviewer 升级到1.1

  1. 图片的显示改用了双层block嵌套,修正了以前只能用tr标签换行的bug
  2. 全部图片专辑只用根目录下的index.php就可以完成显示,以往只能一个目录放一个index.php
  3. 界面作了少许修改,不过效果不佳
  4. 版本号改为1.1

此程序为练习PHPLIB之template之习作,到此已经比较完善,template也告一段落

FreeBSD与Linux的区别

这个问题的N种回答:

高深的:

FreeBSD,从unix移植到x86版的一群expert hacker

Linux,从x86从零开始编写一个unix的一大群hacker

架构的:

FreeBSD是一个完整的系统架构

Linux拥有内核和各种五花八门的发行版

历史的:

FreeBSD曾经碰到过一些法律问题,阻碍了FreeBSD的顺利发展,正如Linux目前正在经历的一样

防御的:

FreeBSD在承受网络攻击方面,似乎比Linux更强壮

洁癖的:

FreeBSD的体系单一,比Linux的发行版机制更简单

学习的:

FreeBSD的体系更适合研究技术,而Linux则向所有的领域进发,甚至跑到mac/pda/汽车控制/宇航/电影等等。

许可的:

FreeBSD的BSD许可,你可以做任何事情,只需要事先大喊一声:“偶用了BSD技术”。而Linux的GPL需要你告诉别人你怎么做的。

软件的:

Linux在支持更多的软件特性上面具有优势(例如线程什么的),FreeBSD缓慢一些

硬件平台的:

NetBSD做的不错,Linux更加疯狂,甚至跑在ps2上

外设的:

Linux支持的外部设备更多

安全的:

OpenBSD是霸主,Linux追赶,不过大家似乎公认安全在人

水平的:

FreeBSD开发组成员平均教育水平更高,这与Linux质量好坏有关吗?

传统的:

FreeBSD在系统稳定性上比Linux更好,也许早就过时了。

功绩的:

FreeBSD最早实现了TCP/IP协议,在IPv4网络上优势无以伦比。

未来的:

FreeBSD:把Solaris/AIX/HP UNIX等优势都弄到x86上

Linux: 进入上述平台的领域

实用的:

FreeBSD在终端上具有传统的优势

Linux则在X体系以上获得了不少分数,足够冲击windows

FANS的:

偶就是喜欢FreeBSD

偶就是喜欢Linux

在MySQL数据库中存储图片

汗,以前一直误以为MySQL不能存储图片

在mysql中建立一个新的数据库

一个怎样储存文件的例子程序

一个怎样访问文件的例子程序

在mysql中建立一个表

CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50));

< ?php

// getdata.php3 – by Florian Dittmer <[email protected]> // 调用方法: getdata.php3?id=<id>

if($id) {

    // 你可能需要调整主机名,用户名和密码:    @MYSQL_CONNECT( "localhost", "root", "password");
   @mysql_select_db( "binary_data");
   $query =  "select bin_data,filetype from binary_data where id=$id";    $result = @MYSQL_QUERY($query);
   $data = @MYSQL_RESULT($result,0, "bin_data");    $type = @MYSQL_RESULT($result,0, "filetype");
   Header(  "Content-type: $type");    echo $data;

}; ?>

怎样储存大于1MB的文件:

如果你想储存大于2MB的文件,你必须对你的程序、PHP设置、SQL设置进行许多修改。

下面几条也许可以帮助你储存小于24MB的文件:

修改你的PHP设置,在一般情况下,PHP只允许小于2MB的文件,你必须将max_filesize(在php.ini中)的值改成24000000

去掉MYSQL的数据包大小限制,在一般情况下 MYSQL 小于1 MB的数据包.

你必须用以下参数重启你的MYSQL

/usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=24M

如果仍然出错:

可能是超时错误,如果你通过一个很慢的连接来储存一个很大的文件,PHP缺省的时间限制为30秒。

你可以将max_execution_time(在php.ini中)的值改为-1