手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2024年11月的文章

四步实现客户软件与ucenter通讯

本文首发于www.ucapi.com,下篇预告:supesite与uchome等应用在同步登录时注意事项

原文如下:

如果你写了一个WEB程序,你又想与ucenter共用一个用户库,你会怎么做?

来吧,让我告诉你,只要几个简单的步骤就行了。

1、先到ucenter administrator建一个应用,在应用里配置完你的项目的地址,在UC_KEY那里随便输入一些字符串,越长越好。【在这里有配置通讯文件的名 称,好象是提示你在api目录下,你可以定义一个,默认是uc.php】。然后你会一直发现应用列表中,该应用一直是通讯失败。

2、生成应用后,在应用详情的最下方有一个textarea框,这个就是系统帮你生成的连接ucenter的配置文件 。

3、在您的项目根目录下建立一个api目录,里面放上刚才说的通讯文件,默认是uc.php

在通讯文件里定义一些常量,可以从uchome、supesite、等里面拷贝出来,其实就是一些返回值 的常量。

加载刚才ucenter administrator所生成的配置文件。

到comsenz的任何一个程序中拷贝一下authcode函数(一般在common.inc.php或者global.inc.php中)

写上简单的判断代码:

PHP代码
  1. $code = $_GET['code'];   //取得GET回来的code变量  
  2.   
  3. //经过authcode解码后,转化为一个数组,这个数组里其实就有一些简单的验证信息,如:时间,传递过来的操作等  
  4. parse_str(authcode($code, ‘DECODE’, UC_KEY), $get);  
  5.   
  6. //如果当前时间大于传递来的时间1小时,返回超时  
  7. if(time() – $get['time'] > 3600) {  
  8.     exit(’Authracation has expiried’);  
  9. }  
  10.   
  11. //如果转换出来的$get变量是空值 ,那肯定是出错了  
  12. if(emptyempty($get)) {  
  13.     exit(’Invalid Request’);  
  14. }  
  15.   
  16. //获取传递过来的操作  
  17. $action = $get['action'];  
  18.   
  19. //写上一个简单的判断  
  20. if ($action == ‘test’){  
  21.     exit(API_RETURN_SUCCEED);  
  22. }  

 

4、写完这样的代码后,去ucenter管理中心看一下应用列表,是不是通讯成功了?

其实那个通讯成功,就是发送了一个 action = test过来。所以当返回1的时候就直接成功了。

不过,由于exit();函数自身的状态,如果参数是字符串,则会直接输出,而如果参数是整数,则仅仅用来表示退出程序,而整数则代表了error code。

If status is an integer, that value will also be used as the exit status. Exit statuses should be in the range 0 to 254, the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully.

这时候,你就会发现,你必须得使用exit(”1″);才会真正的输出1。【当然,这是PHP的基础,与通信问题不大,在这里提出来,只是为了防止你明明写了exit(1),却不会输出而在那里拼命调试】

OK,到现在为止,一个简单的通讯就完成了。如果你需要更多的功能,可以参考一下server究竟提供了哪些服务,然后写上针对性的代码和判断就可以了。

本文没图,但我相信,说的应该够明白了吧?

Tags: ucenter, ucapi

你会愤怒吗?书评?评书

yhustc一大早就很愤青,那是相当的激动啊。顺便还贴了个地址在群里,然后一时间群内议论纷纷。
看了一下,无非就是两票人干架,一方认为有错应该要改,一方认为小错不伤大雅。于是群起纷争。。
记得以前谁说过?技术的事,来不得半点虚假。买过PHP高级编程,haohappy自建了网站,把堪(?)误都列在上面,以期新版再改进。可看这个留言,就让人吃惊了。

【补充】最早的原文在这里:http://www.javaeye.com/topic/474725
以下为部分内容,更多请查看:Yhustc的收藏箱

要学好一门技术,网上有很多免费的资源,搜刮一点确实能入门。但是个人感觉要学好,还是得看书。毕竟书是作者在自己学习的基础上加上一些个人心得或 技巧编著而成,有一些东西也许网上查不到或者不详细,但是书上是有写的。所以真想把一门技术学好,买大于等于一本的经典教程是很有必要的。

但是国内图书市场的情况我想大家都清楚,太过于功利与浮躁。我借阅过很多书,虽然中文作者写出来的确实有很多不错的书籍,但是还有大量的估计是为了 占市场赶工出来的粗糙货,比如是截图与源码对不上一类的错误一堆。再比如两人合著,前一页还是中文版visual studio,一翻页成英文版的了。也许有人觉得这些事情没什么大不了,但是我想下面这篇转载的作者说的有道理,对老鸟也许啥都不是,但对新手这就是一个 坑。

啥都不说了,但愿写书的人都能赚大钱,出版图书的质量也越来越高。

###############  强大的分隔符 ###############

原文链接:http://hax.javaeye.com/blog/474725

直 到今天中午之前,我并没有打算要站出来炮轰这本《JavaScript征途》。因为在目前的技术出版形势下,原创作者面临了很多困难,出书并不易,而且看 得出该书作者(朱印宏,网名css8)技术还是ok的,长久以来在技术社区里也做了不少传播技术的工作。这年头,积攒人品不容易啊!所以一切原本只是停留 在51js论坛上随性而起的     而已。 

然而这本书的作者对于善意批评所作出的连番回应,却令我大吃一惊,他对自己犯的多处低级错误不仅不以为耻、百般狡辩,还发出“没有其他意思……不是广告”,还不止一处,连参与讨论的一向儒雅和气的爱民,都唯有疯笑以对。尤其是今天上午因为china-pub上一位“5级评论员”提及了51js上的讨论,这有可能影响到该书的销售前景,于是css8就坐不住了,明着或暗着说我“危言耸听”、“不厚道”、“偏激”、“动机不纯”、“扣硕大的黑帽子”、“无知傲慢”……还大喊冤枉。这种无耻行径使我感到不能不把这个争论公诸于众,以正视听。 

 既然决定要对作者及其书进行公开批评,不得不牵涉到那些给此书写推荐书评的人。包括: 

蓝色理想网站站长曾沐阳 
* 《JavaScript王者归来》作者月影 
* 51js超级版主Winter

 

------OVER----

Tags: 吵架, 书评

鸡肋一般的wps插件:PDF查看

鸡肋者,食之无味,弃之可惜。
这是杨修被杀前说的话。

PDF查看插件是最新WPS里提供的,使用后,打开PDF,可以很完整的看到书签,然而,内容却全部变成了乱码。

在使用福昕打开后,一切正常。并没有乱码出现。

由此可见,这个PDF查看的插件,还不如没有。

但是,WPS导出PDF的功能还是不错的。至少我挺喜欢。首先不用担心别人再修改我的文档了:其次,如果按照规范做的文档,还能够按层次自动生成书签。

可惜了这个PDF查看插件。

怎么,不相信?有图为证

WPS截图:

大小: 121.3 K
尺寸: 500 x 366
浏览: 1921 次
点击打开新窗口浏览全图

福昕截图:

大小: 120.13 K
尺寸: 445 x 376
浏览: 1919 次
点击打开新窗口浏览全图

Tags: wps, pdf, 鸡肋

开通52cd.net的多用户博客

开通了52cd.net的多用户博客,皮肤我也去官方下载了不少,欢迎申请试用(当然是有限额的)

试用可以在本站留言,经申请通过后会帮你建立一个初始帐号和一个简短域名,例如:http://g.52cd.net

不提供注册。

当然,目前在52cd.net也没有象博客园那样搞首页聚合,本来就是一个随意的博客而己。

只是请不违反国家有关政策即可。

特别申明:这两天关闭是因为备案问题。。。我都准备了N多国庆拍的照片了。结果,我现在自己也没办法访问

备案下来了。重新开通了。。。。。

Tags: 博客, 52cd

PHP分词索引

  众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来 才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我是 一个 学生。
目前主流的中文分词算法有:

1、 基于字符串匹配的分词方法

这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功 (识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最 短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的词数最小)。
还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向 最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169, 单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各 种其它的语言信息来进一步提高切分的准确率。
一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明 显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类 信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。
对于机械分词方法,可以建立一个一般的模型,在这方面有专业的学术论文,这里不做详细论述。

2、 基于理解的分词方法

这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义 现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义 进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可 直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。

3、 基于统计的分词方法

从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映 成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现 信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要 切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之 一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行 串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识 别生词、自动消除歧义的优点。

值此,放上收藏的三篇文章和程序
1、yhustc的分词词库(采用sqlite,无词频分析,下载地址为:http://www.neatcn.com/dict/dict.tar.gz,在http://www.neatcn.com/dict/有简单的试用,也可以通过http://www.neatcn.com/dict/test.php?type=json&encode=gbk&contents=xxx等调用返回),

2、dede的分词,(织梦的算法:http://www.dedecms.com/html/chanpinxiazai/20061229/3.html#,该页同时有演示,采用CSV文件)

3、一篇比较老的分词程序:http://www.neatcn.com/show-592-1.shtml

Tags: 分词, yhustc, dedecms