
菜刀说:
2010年您就这么过去了,回头想想我一片迷茫,忙忙碌碌总觉一无所得,看看前方,目标竟似乎越来越远,知道为了什么而奔忙,但不知道我是否跑对了方向……
PHP提供的cli模式可以进行一些简单的shell程序开发,Yii框架也提供了cli程序开发的解决方案。在Yii项目的protected目录下,存在yiic和yii.bat两个文件,它们分别是类unix系统和windows系统下执行Yii项目的命令行程序的入口,例如:
$ yiic command action --param=value
或者
$ php yiic sitemap test --type=value
具体使用哪种写法,取决于入口程序是否有执行权限,例如,在linux系统下,如果执行命令:
chmod +x yiic
给予了yiic执行权限,就可以用第一种方式来执行php命令行程序,否则需要使用第二种方式。 [查看全文]
PHP提供了命令行模式的开发方法:cli,它可以用PHP来开发可以在命令行环境下执行的shell程序。PHP的cli模式有以下特点:
PHP不会输出http头信息,因为命令行模式下这些信息是无意义的。
自动覆盖了php.ini某些设置,如:
- html_errors=FALSE \\设为true,返回的错误信息中可以附带链接指向提供更详细错误描述的相关页面,显然这个特性在命令行下是无意义的。
- implicit_flush=TRUE \\立即将输出内容发送到终端,不做任何缓冲,当然如果想使用输出缓冲功能,依然可以使用相关函数来设置。
- max_execution_time=0 \\程序最大执行时间设置为无限。
- register_argc_argv=TRUE \\决定PHP是否定义$argv和$argc两个全局变量,默认是false。在web环境下这个设置起作用的前提是register_globals=on。另外还可以用$_SERVER['argv']来访问他们,具体细节如何有待验证。 [查看全文]
前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索。假定数据表名为post,有三列:id、title、content。id是自增长序号,title是varchar,content是text,给content添加全文索引。mysql全文搜索有三种模式:
一、自然语言查找。这是mysql默认的全文搜索方式,sql示例:
select id,title FROM post WHERE MATCH(content) AGAINST ('search keyword')
或者显式声明使用自然语言搜索方式 [查看全文]

想用sql语句以正则匹配的方式从sqlite数据库中获取我想要的一组数据,语句如下:
SELECT id,word FROM words WHERE word REGEXP "^[a-zA-Z]+$" LIMIT 10
Mysql中无误执行的SQL语句,在sqlite数据库却回报了错误:
General error: 1 no such function: REGEXP.
REGEXP函数不存在?
可Sqlite文档中分明存在着关于REGEXP的说明,不过这段英文说明与其他关键字的说明有一些不同,我一时没有理解它所表达的意思。通过搜索引擎大神,才明白,原来Sqlite这个迷你数据库系统并没有内置实现正则表达式的功能,只是提供了一个REGEXP的关键字,这个关键字实际上是一个需要用户自行编写的自定义函数,譬如我现在用PHP和Sqlite结合开发,那就需要编写一个PHP的函数供Sqlite调用,譬如: [查看全文]
2011-04-27
最近在用sqlite做一些小东西,所以需要找个好用的sqlite管理工具,桌面版的找了一堆,比如sqlite spy、sqlite admin、sqlite developer等等,这些桌面软件要么缺少中文版、要么功能太简陋、要么操作很别扭,总之我都不满意,虽然之前在firefox下用过一个用于sqlite管理的插件,各方面都还过得去,可我现在主要使用chrome浏览器,不可能为了管理sqlite特意再开个firefox。绕了一圈我又重新拿起了原本用过的PHP版的SqliteManager(还有款桌面工具也叫这个名字,不过它们的雷同实属巧合),它和所有PHP人都熟悉的PHPMyAdmin非常类似,不需要浪费你哪怕一分钟的时间去上手,打开就会用,也有多语言支持——看来还是PHP人最了解PHP人需要什么样的工具啊。然而使用SqliteManager时我遇到了一个不大不小的问题:将utf-8编码的内容存入sqlite后,SqliteManager却浏览不到数据;存入英文或gb2312编码的内容就可以浏览。我一度以为sqlite对utf8编码的处理有什么特殊之处,可从未听到类似的说法。我用PHP再将存入的UTF8数据读取后输出,嘿,这数据分明好好的存在sqlite之中了。再看看SqliteManager的网页源码,真相大白,原来选择了SqliteManager的界面语言为简体中文时,网页编码就是gb2312,当然不能显示utf8的内容了。 [查看全文]
© CopyRight dao.daimaku.com All Rights Reserved
[