PHP文本文件操作的新收获,兼对学习书籍的粗略认识

最近做的一个程序,需要从文本中提取数据。最初的时候按照原先学习的php对文件的操作,使用的是fopen函数读取通过表单文件域传递过来的文件,然后再使用fgets函数进行一行一行的读取数据。这就存在一个问题,如果直接读取本地文件,然后上传到服务器的数据库中时,总是提示文件有误。开始知识有限,查看文件域,对应的字符串为/var/tmp下的文件名,以为php只能是操作远端服务器中的文件,便在前面添加了一行cp语句,将文件上传到服务器后再操作,倒也正常。

但随着文件的逐渐增大,上传的时间已经快赶上处理数据的时间了,恰好昨天系统学习php中的文件操作,学到可以用file()函数将文件读入到一个数组中,对应自己的程序,想到可以尝试一下。果然是一次成功,省略了原先文件传输的时间,算是小有收获。

最初学习,兴趣为主,看的书一般都不是很系统,而这方面台湾的作者,写作手法或者说技能要好于国内的,一般能抓住学习者的兴趣点,由浅入深,逐步深入,但受篇幅所限,多是举出常用实例,然后对例子中的关键之处进行一些指导,学下来之后也就是照猫画虎,算是入门的良品。美国的书则是,以我为主,娓娓道来,初看很是枯燥,与自己所学关系不大,但看来要想深入,还是看看专业、系统的书籍。

911与大耍

又是一年911,但每想到911,我首先想到的不是双子楼,不是那位大胡子,而是想到一段并不是非常有名的相声—大耍。

那段相声可谓是典型的天津派相声段子,开始听声音,相声的风格以为是高英培,后来联想到高先生之前已经仙逝,估计是另有高人。

相声很短,但相声里面的精华都包含其中。开始听知道是老套的胡同里故事,类似于马三立的练气功的,但其间笑料不少,比如那位献血的。逐步走向高潮,随着最后一个包袱抖出,整个相声顿时升了一个档次。只有最后那句“美国啊!”再回味故事,才会体会到那句名句,“本相声纯属雷同,欢迎对号入座。”

好相声看来真是不在中央台的晚会上。

 

DEDE的会员功能试用和自己的看法

一直在使用dede,但最近才开始细细研究一下,今天试了试会员功能,使用之后发现的确不错,构思好,设置也很完善。会员的权限要低于管理员,可以防止误删或者任意修改非自己发表的文档,每个人有自己的圈子,管理员通过管理会员可以去芜存菁,将网站建设的百花齐放。目前国家对论坛的管理力度正在加大,而论坛最大的问题就是不便管理,不像是议事厅,更像是茶馆龙门阵。会员功能如果控制得当,形成一个交流意见、发表自己文章的场所,特定用途的网站完全可以替代论坛的,甚至达到论坛达不到的功能。
但是感觉初次注册的会员权限是不是大了点,注册之后就可以发表文章,上传附件。虽然还需要审核,但我感觉还是缺少限制,能不能像博客多用户系统lifetype那样对新注册会员审核之后才能使用完全的功能。但在后台管理里面找了半天,还没有找到相关的设置,看来是把门槛设的低了点,估计还是为了更好吸引参与者吧。

初试RAID

2002年升级机器的时候,选择的是曾经很经典的磐正8K7A+,525元,为了这个+号,多花了25元,主要是看中带RAID功能。但用了4年,机器再次升级换下这块板子也没有用到RAID功能。

最近手头恰好有两块10G的旧希捷硬盘,于是又动了实验的念头,拿出闲置1年的主板,外观上还算是崭新的,做工更不是现在产品所能比较的。

接上两块硬盘,进入CMOS将板载的high point芯片的raid功能打开,保存后检验完bios后提示按ctl+h进入raid设置。设置界面也很简单,首先选择raid模式,选择的raid1,然后就是选择硬盘,选中检测到的硬盘后,再确认哪块为主,确认后没有再修改管理界面中其他例如传输模式等,直接选择创建。经过近20分钟的过程后,提示成功。

再次进入cmos将启动选项中将raid项也添加进去,开始安装FreeBSD6.1,fdisk的时候,选项中有3个选项,两个ad,一个ar0,选择ar0,然后进行最小化安装,重新启动之后一切正常。

虽然晚了5年,但总算是一个新的开始。

重温英雄无敌III

因为难忘英雄无敌III,年前买了英雄无敌V,根据介绍的配置原先只是在笔记本上玩,后来安装到我的台式机上(闪龙2200+,512M内存,ATI8500)倒也流畅,但可能是怀旧心理,还是喜欢早期3代的结构和情节。只是自从升级到xp之后,安装之后就无法进入游戏,无论是光驱还是虚拟光驱,都提示找不到光盘。这也是一个网上普遍存在的问题。

前几天经不住宝贝儿子的央求,给他买了埃拉西亚的光复和末日之刃,本来只是为了作为经典保存,但小家伙变本加厉的缠磨,今天就打算试一下。

先下载了DEAMON Tools4.08安装,再用cd-clone把游戏盘做成镜像,这次默认的光盘属性是game类,挂载之后安装一切正常后,点击图标,熟悉的3DO的画面出现在眼前!

看着经典的片头动画,不禁又回到99年。那时候还没有结婚,住在宿舍里面,一张光盘在两台机器间传递,每当过关后需要光盘就大呼光盘快来。

现在再玩,速度有了飞速进步,当时的机器不过是k6-233加上14寸显示器,虽然游戏在17液晶上更显得画面粗糙,但情节和战术还是引人入胜,儿子似乎也更喜欢3。

此次成功估计是XP sp2或者是虚拟光驱版本提高的原因。

安装jabber2,运气真是不错

过完年算是忙过一个阶段,突然起了建一个内部即时通讯系统的念头,到网上找了找,freeBSD下比较有名的是jabber2,从2开始已经支持数据库,默认的是mysql,同时也支持PostgreSQL。单位的机器不能连接外网,但有了上次安装php的经验,不管三七二十一进入ports下的net-im,找到jabberd直接make install。自然是提示找不到文件,将需要的文件复制到google上搜寻下载,然后ftp到ports下的distfiles文件夹继续安装,只是需要两个文件包就安装完毕。

我使用的是mysql数据库,于是先进入/usr/local/share/jabberd目录,再使用有建立数据库权限的用户进入mysql,然后执行. db-setup.mysql执行默认的脚本文件建立数据库。这之后还需要使用grant进行授权,这一点很关键,有很多网上帖子中忽略了这一步。

此后进入/usr/local/etc/jabberd目录,如果不考虑mysql用户和密码,其实只需要修改两个文件sm.xml、c2s.xml,把其中的localhost替代为主机的ip地址就可以了(我使用的是局域网,不需要用域名)。

安装好了之后在rc.conf文件中加入jabberd_enabled=”yes”,重新启动机器后,看message记录一切正常,便从网上下载了gaim作为客户端,注册是成功的,但总是连接不上,正好下班时间到了,便没有再测试。

回到家里,还是不甘心,就又在自己的服务器上试验一下。单位机器系统是6.0,家里的是6.1,年前一次昏头删除了不少功能,所以安装过程中出现了一次错误,主要是提示一个目录不存在,建立后倒是正常,再就是安装结束后,无法正常启动。查看message,是提示没有权限操作 /var/jabberd/pid/下的文件,网上说是没有建立jabberd用户,查看其实已经建立了,单位机器不存在这个问题,估计是系统不完整的原因,就使用chmod命令进行授权,再重起机器,一切正常了。

单位的gaim不能工作,就换了psi,界面操作都要好不少,但却又无法注册,直接查看mysql数据库,里面也没有记录。后来查看网上资料,有一篇提到修改sm.xml文件,启用auto-create功能,进去一看,果然,6.1下的和6.0不同,默认的是关闭用户自动注册的,取消了限制,登录成功!

一晚上都很兴奋,早上到了单位换上psi,一切正常,加了几个用户,传输文件、通讯都没有问题。虽然小有挫折,这次算是顺利的,运气不错。

从存在的问题看,是与版本有关,下次安装6.2的时候重新测试一下,应该有结论。

学无止境,总有收获

年底忙着年转工作,进入2007年又忙着追杀堵截那该死的熊猫,打开博客一看,已经1个多月没有写东西了。

这几天会计要打印2006的账页,于是把去年的程序拿出来修改,这个程序主要是针对建行DCC系统不能人性化的打印、整理满页账,为了减轻前台人员压力用delphi+mysql编写的。程序运转倒还正常,只是由于今年的文件比较多,总是提示out of index,只好把文件分成几次导入,倒也没有大碍,唯一不满意的还是最后文件的倒出,总要费上他5、6分钟。

原先程序使用delphi的功能多一些,而数据库主要起到的是存储功能而已,最近又学习了一下mysql,决定修改一下程序,发挥数据库的功能。改造也很简单,把原先一条条记录查找、核对、写入改为用sql语句,跨表一次性把所需数据导出写入文本文件。结果效果很惊人,只用了不足10秒钟就解决了。

delphi文本操作和mysql数据查询功能果然名不虚传。

看来真是学无止境,只要学习,总会有收获。

关于麒麟系统不吐不快的观点

随着麒麟系统通过验收,在CU论坛上兴起一阵洪水。但奇怪的是,首先发帖不是原先的责难者,而是那些不知何种目的的支持拥护者,为首者为一名为LInuxserver的,他们的观点也很奇怪,也不否认麒麟与FreeBSD的关系,只是泛泛攻击那些质疑者,颇有一副“既然有了,你能拿我怎么办?存在就是合理的,接受就是了”的愚民观点,开始还不是拽出几句古文,到了后来反驳的人多了,也就顾不上咬文嚼字,有些现代流行诗的架势了。

我菜鸟一名,对质疑者提出的证据只是看看热闹而已,本来不该参与其中。但那些所谓的LZ满帖子也没有多少技术含量,憋屈许久,也就不吐不快,说说自己的看法。

那些lz所持观点到很一致,就是先嘲笑那些质疑者,如鲁迅先生所说那样:我是正确的,我批驳你们,你们就是错误的;既然你们是错误的,那么你们批驳的麒麟就是正确的,既然麒麟没有问题,那我就是正确的。仅此而已。

其实撇开技术而言,大家鄙视麒麟,(其实真正鄙视是其开发者,或者是鼓吹者),不是因为他们的工作,而是因为他们的诚实。如果他们开头就宣称自己是基于或者参考FreeBSD,大家肯定不会有这么大的意见,关键一点是一直在有意否认或者回避这一事实,虽不能说是道德问题,但至少有违诚信。

举个例子,单位让我做一个网站,有一定要求,出于便于管理也罢,安全也罢,要求自己能够完全控制,也就是自主产权吧。我的水平有限,自己用apache+php+mysql做出来的领导不满意,自己饭碗自然受到威胁,于是在网上寻名师,访高友,发现DEDE CMS不错,还是开源的。于是拿来修改logo,power by等等,换成我们自己的,一个网站初具规模。后来发现还有很多不能满足我们使用的,比如没有影视下载频道等,于是在其软件下载频道基础上进行自主修改,使其符合我们的要求。然后参考别人的帖子,加上自己的学习,对一些细节进行添加,终于投入使用。

这时候问题就出来了,如果我对领导实话实说,领导会夸我“工欲善其事,必先利其器”会善于利用现有资源圆满完成任务,季度绩效工资多发几个就是。如果见单位里面懂计算机的人不多,就在领导面前腆着脸皮说是自己开发的系统,花费了自己大量精力云云,以此博得领导欢心,多那几个大洋,一旦遇到明眼人看出系统出处,必然为周围同事不齿,自己恐怕只能是无地自容,在单位也就没有立足之地了。

但麒麟似乎根本没有这个顾虑,上有领导庇护,下有喽罗鼓噪,好不自在。明理人不会指责麒麟的拿来主义,也不是眼红7000万的经费,大家愤恨的是其虚伪,严重的说就是欺世盗名。

如90年代初看的一部苏联电视剧中所说,如果一个国家的科学决定权在政治,那这个国家就完了。

无耻啊!无耻!

今天在网上看新闻,得知麒麟操作系统通过了验收,可能是为了避免往日的尴尬,在麒麟前面又加上了一个银河的前缀,文章里面倒是提到了与FreeBSD的关系,虽然是轻描淡写,但至少是承认了与FreeBSD的关系,也只是宣称是自主产权而已。

但打开电视,新闻联播的第一条就是这个新闻,但里面恬不知耻全篇宣称独立自主开发,丝毫没有提到与FreeBSD的关系。毕竟新闻联播是为了宣传的,而网络上这件事已经是轰动一时,不给个说法无法服众,但到了电视上就是另一码事,只要政绩哪管良心。

无耻啊!

远去的自由

我使用软件,一般倒不是很赶时髦,只要使用的顺手,很少升级到最新版本。使用的比较多的网站软件多是自由或者免费软件。管理Mysql数据库,比较喜欢MyDB studio,虽然在字符集设置等方面不是很全面,但是支持ssh登陆管理,比EMS的Mysql管理软件免费版要强的多,所以一直使用它为主。而PHP编程使用的是另一款自由软件PHP designer,感觉不错。

但是前几天机器重新安装系统后,下载了这两个软件的最新版本,发现都已经不再是自由软件了,需要在30天使用后交费注册。失望中只有删除掉,幸亏还有其他可以选择的免费、自由软件可供使用。

在当今这个世界中,自由的东西越来越少,为了自身也罢,为了软件发展也罢,越来越多的自由免费软件离我们而去,这也是世之常理,没什么苛求指责的。所以现在更为珍视那些仍然坚持自由的软件,国内更是如此。DEDE CMS能够坚持到现在,虽然3.1正式版仍然遥遥无期,但他已经为我们做的足够多了,我们在他提供的平台之上做的不应该只是企盼,埋怨,应该心怀感激之情做出自己的贡献。