"Min〆" 发布的文章

Typecho飘雪插件 (2016.1.5更新)

2015年的圣诞节就要来临~
看到各个博友们站点都加了飘雪效果,爱折腾的我也弄了几个~
觉得好东西要分享,故我做了个Typecho插件,因为不知道取名叫什么,就只好取名Snow了。
废话不多说了~~

- 阅读更多 -

说说自定义尾巴爬虫

代码:

<?php
    header("Access-Control-Allow-Origin: *");
    function curlReq($url, $post = false, $data = array(), $headers = array(), $resp = 0, $timeout = 10, $CA = true) {
        $cacert = getcwd() . '/cacert.pem';
        $SSL = substr($url, 0, 8) == "https://" ? true : false;
        $cookie_file = dirname(__FILE__)."/data.cookie";
        $ch = curl_init();
        @curl_setopt($ch, CURLOPT_URL, $url);
        if ($resp == 0) {
            @curl_setopt($ch, CURLOPT_HEADER, false);
        } else {
            @curl_setopt($ch, CURLOPT_HEADER, true);
        }
        @curl_setopt($ch, CURLOPT_FAILONERROR, false);
        @curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout - 2);
        if ($SSL && $CA) {
            @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
            @curl_setopt($ch, CURLOPT_CAINFO, $cacert);
        } else if ($SSL && !$CA) {
            @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        }

        @curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/5.4.1 NetType/WIFI');

        $ip = '49.86'.'.'.rand(1, 255).'.'.rand(1, 255);
        $headers[] = 'CLIENT-IP: '.$ip;

        @curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        @curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);

        @curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
        @curl_setopt($ch, CURLOPT_COOKIEJAR,  $cookie_file);

        if ($post) {
            @curl_setopt($ch, CURLOPT_POST, true);
            @curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
        }
        ob_start();
        $ret = curl_exec($ch);
        $content = ob_get_contents();
        ob_end_clean();
        $rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

        curl_close($ch);
        return $content;
    }
    if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') {
        try {
            $required_areas = [
                'qq' => 'QQ', 'sid' => 'SID', 'sname' => '机型', 'content' => '内容',
            ];
            foreach ($required_areas as $required_area => $required_area_text) {
                if (!isset($_POST[$required_area]) || empty($_POST[$required_area])) {
                    $alert_message = '请填写 '.$required_area_text.' 字段';
                    throw new exception('alert-danger');
                }
            }
            $publish_url = 'http://m.qzone.com/mood/publish_mood';
            $post = [
                'content' => $_POST['content'],
                'sid' => $_POST['sid'],
                'lon' => '',
                'lat' => '',
                'lbsid' => '',
                'res_uin' => $_POST['qq'],
                'richval' => '',
                'source_name' => $_POST['sname'],
                'is_winphone' => '2',
                'opr_type' => 'publish_shuoshuo',
                'format' => 'json',
                'issyncweibo' => '0',
            ];
            $result = curlReq($publish_url, true, $post);
            if (!$result) {
                $alert_message = '与空间服务器的通信异常。';
                throw new exception('alert-danger');
            }
            $res = json_decode($result, true);
            if (!$res || !isset($res['code']) || !isset($res['subcode']) || !isset($res['message'])) {
                $alert_message = '发布状态无效。';
                throw new exception('alert-danger');
            }
            if ($res['code'] == 0) {
                $alert_message = '说说发表成功,请在手机空间客户端查看效果!';
                throw new exception('alert-success');
            } else {
                $alert_message = '说说发表失败!<br />错误代码:'.(int)$res['code'].' ('.(int)$res['subcode'].')<br />错误信息:'.htmlspecialchars($res['message']);
                throw new exception('alert-danger');
            }
        } catch (exception $e) {
            $alert = true;
            $alert_type = $e->getMessage();
        }
    }
?>

- 阅读更多 -

json对象转组数

public function object_to_array($obj) // 对象转数组
{
    $_arr = is_object($obj) ? get_object_vars($obj) : $obj;
    foreach ($_arr as $key => $val) {
        $val = (is_array($val) || is_object($val)) ? $this->object_to_array($val) : $val;
        $arr[$key] = is_numeric($val) ? number_format($val, 0, '', '') : $val;//解决科学计数问题
    }
    return $arr;
}

Cycript 笔记

cycript -p "appname"

查看view结构:

?expand
[[UIApp keyWind] recursiveDescription]

窗口操作:

ctl + c 取消(cancel)一个方法
ctrl + d 退出 cycript 或者用 ?exit

- 阅读更多 -

LOGOS语法

初始化函数

%init 
%init([<class>=<expr>, …])
%init(Group[, [+|-]<class>=<expr>, …])

初始化一个组,如果没有参数表示初始化’_ungrouped’组.

- 阅读更多 -

返回顶部