• 蜜月旅行之丽江

    从机场坐上大巴,一路上可以感觉到云南的不同的地方就是红色的泥土,和不一样的野花。

    在丽江的几天,天天都下雨,偶尔也出点太阳,知道我们离开的那天才转多云,所以玉龙雪山也没去,因为去了也啥也看不到。不过据说那边也并不好玩,所以说不定也避免了一些失望。

    等我们在青旅安顿好,天已经黑了。于是出门觅食,天在下雨,又冷又饿,于是吃了传说中的腊排骨火锅(话说丽江的吃的东西真贵)。吃完了继续逛。夜晚的丽江,走在灯光照着湿漉漉的石板路上,只要别是人多的大路,其实还是挺舒服的。

    第二天上午去束河逛。束河就是个缩小的大研,不过这边买纪念品似乎更好些,因为很容易看到各种东西。

    回来吃了饭又开始下雨,于是躲进书吧喝普洱茶翻书。

    第三天早上去黑龙潭。黑龙潭是远看玉龙雪山的好地方。不过我们和雪山没缘分,只能看到一小块。

    想看得更清楚些,于是爬上了一边的象山。山看起来不算很高,爬起来还是很累。好不容易爬到顶,结果雪山却完全被云挡了起来。

    回到大研,又爬上了万古楼。等了好久,云跑开了一些,总算是能看到个顶了,还能看到整个古城的房顶。

    古城山上的那一片因为高低错落,感觉更有意思些。

    大研还是很大的,所以叫古城而不是古镇了。比较烦的一点是,整个丽江到处都在放同一首歌,听得都烦了,后来搜了才知道原来是《滴答》……这是为什么呢?

    Tags: 旅游 丽江
  • crontab 里 % 引发的问题

    写个 crontab ,命令是类似这样的

    /path/to/script `date +%Y-%m-%d`

    直接运行很正常,但是在 crotnab 里就出错。

    /bin/sh: -c: line 1: unexpected EOF while looking for matching ``'
    /bin/sh: -c: line 2: syntax error: unexpected end of file

    google 了好一阵才找到答案。原来 crontab 里的 % 是有特殊意义的,在这里需要转义。man 5 crontab 可以看到,

    Percent-signs (%) in the command, unless escaped with backslash (\), will be changed into newline characters, and all data after the first % will be sent to the command as standard input.

    % 如果没有用 \ 转义,就会被替换成换行。所以之前的 crontab 就出错了。

    解决办法:可以在 % 前面都加个 \ ,对于这个例子,写成 date +\%Y-\%m-\%d。

     

    Tags: crontab Linux
  • 一个 php 对象数组转型的神奇结果

    群里说起 php 的数组 key 的类型转换问题,

    比如 $a = array('123'=>'abc'); var_dump($a); 会发现 key 会变成整数。用 $a['123'] 这种方式访问数组的时候,也会先把 key 转换成整数。突然想到能不能构造一个实际 key 为字符串形式的数字的数组,或者整数型属性名的对象(对象内部也是个 hash,也同时支持整数和字符串 key)。试了一些方法没成功。然后看到了这篇东西

    http://www.laruence.com/2010/05/26/1541.html

    就想到了个构造那样的数组和对象的方法。

    $o = new stdClass();
    $o->{'123'} = 1;
    $a = (array) $o;
    var_dump($a);
    var_dump(isset($a['123']));
    var_dump(isset($a[123]));

    $a = array(1,2,3);
    $o = (object) $a;
    var_dump($o);
    var_dump(isset($o->{1}));
    var_dump(isset($o->{'1'}));

    这样就构造出了正常方式没法访问的数组下标和对象属性*(访问对象属性时会把属性名转成字符串)。

    还可以干一件更 BT 的事情,访问对象的私有或保护属性。

    class Test {
        private $a = 1;
        protected $b = 2;
        public $c = 3;
    }
    $o = new Test();
    $a = (array) $o;
    var_dump($a);
    var_dump($a["\0Test\0a"]);
    var_dump($a["\0*\0b"]);

     

     

    Tags: php

日历

关于神仙