加载中…
博文
(2014-05-24 17:23)
标签:

json_decode

json非法字符

php

json_last_error

分类: work
    一般情况下,获取到一段json内容,直接json_decode($content, true)就转成array来用了,很方便。
    但是,如果给你提供json内容的接口出了点问题,给的json不标准或是干脆有错误,那就要想办法来找出问题了。
   先看看json_encode的manul
   http://cn2.php.net/manual/en/function.json-decode.php
   失败时返回NULL
   $result = json_decode($content, true);
   if(!$result)
   {
        //error handle
   }   
   我们如何知道错在哪里了呢?
   1、获取错误码
   php有一个json_last_error函数,见
   http://cn2.php.net/manual/en/function.json-last-error.php
   它会返回错误码告诉我们是什么原因出错了。
   错误码看不懂?可以用json_last_error_msg,见
   
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

nginx

sub_filter

it

分类: work
   因为要实现一个类似sub_filter流式解析输出包的模块,就读它的代码想仿着来写。结果发现了一个小问题,也不知道是否算是bug。
   函数ngx_http_sub_parse逐个字符遍历buf,找到要替换的字符串ctx->match。何时才算是完全匹配到了呢?
   
   if (ch == ctx->match.data[looked]) {
            ctx->looked.data[looked] = *p;
            looked++;

            if (looked == ctx->match.len) {
                ....
                return NGX_OK;
            }
    在前面找到ctx->match的第一个字符时,looked置为1.
    问题来了,如果ctx->match长度就是1,那么 if (ch == ctx->match.data[looked]) 永远都不会满足
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

nginx

upstream_response_le

it

分类: work
    线上使用的nginx-1.2.4,在打access日志中用到了$upstream_response_length这个变量,打印的是upstream后端返回的长度。
    上周为了能够让后端分段输出响应给浏览器(并不是http chunk的概念,只是PHP程序flush多次),关闭了nginx的proxy_buffering。发现upstream_length几乎都变成0了,后端返回的长度显然是不可能全是0的。
     查看upstream_response_length这个变量的get_handler函数ngx_http_upstream_response_length_variable,它取的就是r->upstream_states中的ngx_http_upstream_state_t.response_length
     再继续grep代码,在ngx_http_upstream_finalize_request函数中有这么一段很有问题
if (u->pipe) {
            u->state->response_length = u->pipe->read_length;
        }
     在关闭了proxy_buffering的情况下,nginx upstream是不会使用event_pipe来读取和返回数据的,u->pipe->read_length也就一直是初始值0。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

新浪博客

wordpress

搬家

it

分类: 日常问题

         新浪博客用了2、3年了,其实还是蛮好用的,只是也太缺少变化,主题就那几种,很久不更新。 很羡慕网上看到的各种个人站点,觉得作为一个IT从业人员,拥有一个自己的站点也是件不错的事情。

        于是去注册了个域名,名字就是我常用的网名。买了个虚拟主机,装上wordpress。

        麻烦的是如何把新浪博客里攒下的文章导入进来,曾经blogbus的博客搬家工具是可以把各

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

php

smarty

fail

pcre

unexpected

it

分类: work
这两天好多同学反映我们的某模块smarty模板渲染失败,报错是
fail to render page, errors[fail to render template :Unexpected input at line1: }]
后来发现是php.ini里限制了递归的次数,而smarty模板里大量使用了递归,导致错误。
具体配置在
[Pcre]
;PCRE library backtracking limit.
;pcre.backtrack_limit=10000

;PCRE library recursion limit. 
;Please note that if you set this value to a high number you may consume all 
;the available process stack and eventually crash PHP (due to reaching the 
;stack size limit imposed by the Operating System).
;pcre.recursion_limit=10000
把这两个配置注掉
但是这也不是没有代价的,可能会使我们的渲染时间无限上涨。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

chm

internet链接打不开

it

分类: 日常问题
CHM文件打开后,里面的内容全都看不了,只显示
Internet Explorer 不能链接到您请求的网页

将下面的内容保存为1.reg文件,然后执行即可
REGEDIT4 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions] 
'MaxAllowedZone'=dword:00000003 
'UrlAllowList'=''
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions] 
'MaxAllowedZone'=dword:00000003 
'UrlAllowList'=''
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2012-09-23 18:45)
标签:

rc4

破解

增强

暴力破解

分类: work
     上一篇博文中提到的,RC4算法是对称的加密算法,加密和解密的步骤都是众所周知的、固定不变的。唯一的保密性来自于初始的key。这个key理论上来说只有通讯双方知道,但是如果第三方从某种途径获得了这个key,那么第三方可以毫不费力地用RC4来解密他截获到的加密字符串了。
    第三方如何得到这个key呢?家贼难防,有人泄露给竞争对手,那实在是没办法的事情,赶紧换key吧;同时,第三方也可以不依赖于间谍,直接暴力破解,成功率应该不低。
    暴力破解的前提是,需要知道一些正确的解密结果。就是知道:若干加密串(或是加密串片段)对应的原文,这样才可以验证暴力破解是否成功。如果RC4只是用于有限个个体间通讯,那么破解方要获得这些先验的正确结果可能比较困难,但如果你提供服务的对象是整个互联网用户,那么想破解你的人自然可以合法地方便地获取到很多先验正确结果来辅助暴力破解。
    理论上来说,RC4算法是很难被破解的。RC4中用到的key是长度在[1,256]的unsigned char字符串,可能性就是
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2012-09-19 14:49)
标签:

it

linux

rc4

openssl

RC4算法是非常常用的加密算法,效率也很高。
参照 http://en.wikipedia.org/wiki/RC4 ,可以很容易地自己实现RC4算法。
1.首先加密、解密的双方要约定一个key,它应该是一个长度在[1,256]区间(单位是byte)的字符串。而且,应该是unsigned char而不是char,这是由KSA算法要求的。
2.KSA

KSA算法的作用就是将一个初始取值是0~255的Sbox打乱,打乱后的结果依赖于之前确定的key。在这里可以看到key[]的取值应该是0~255,否则会产生负值。
3.PRGA
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

博客七周年

我的博客今天2179天了,我领取了徽章.  

  • 2010.03.16,我在新浪博客安家。
  • 2010.07.10,我写下了第一篇博文:《WIN7系统有杂音》。
  • 2010.08.14,我上传了第一张图片到相册。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

ctrls

linux

it

分类: work

来自http://cnzhx.net/blog/ctrl-plus-s-in-putty/

=======================================================================

今天在 Putty 中编辑 VPS

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
新浪微博
个人资料
bluemonster
bluemonster
  • 博客等级:
  • 博客积分:0
  • 博客访问:284,504
  • 关注人气:39
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
搜博主文章
好友
加载中…
访客
加载中…
评论
加载中…
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有