Skip to content

Instantly share code, notes, and snippets.

View picasso250's full-sized avatar
💭
I may be slow to respond.

pica picasso250

💭
I may be slow to respond.
View GitHub Profile
@picasso250
picasso250 / tree.php
Last active December 17, 2015 00:59
简单的树结构,可以插入,删除,检测某节点是否存在
<?php
/**
* 简单的树结构,可以插入,删除,检测某节点是否存在
*/
class XcTree
{
// tree structure
// $tree = array(
// array(
@picasso250
picasso250 / MoneyDec.php
Last active December 17, 2015 01:39
计算时指定精度,适用于计算财务
<?php
/**
*
*/
class MoneyDec
{
public $val;
public $pr;
public $int;
@picasso250
picasso250 / sugar.php
Last active December 17, 2015 03:49
sugar functions in php
<?php
function _get($key = null, $or = null)
{
if ($key === null)
return $_GET;
return isset($_GET[$key]) ? trim($_GET[$key]) : $or;
}
function _post($key = null, $or = null)
{
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
set_time_limit(1000);
$root_url = 'http://mitpress.mit.edu/sicp/full-text/book/';
$start_url = 'http://mitpress.mit.edu/sicp/full-text/book/book.html';
$save_root = 'sicp';
<?php
/**
* PHP lint
* 用法:放在www目录下,用浏览器访问即可
* 作者:王霄池
* 有 bug,请去打击王霄池
*/
ini_set('display_errors', 1);
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
/**
* 这个 JSON 解析器还有以下问题:
* 不能处理utf编码
* 用的是递归,可能会产生 stack overflow
* 整体需要扫描两遍以上,效率低
<?php
class WeiChatAuth
{
/**
* 获取access_token
*
* 一定通过网络获取
*/
public static function getAccessToken($appid, $appsecret)
<?php
// convert with float
function my_base_convert($n, $from_base, $to_base)
{
// when int
if (intval($n) == floatval($n)) {
$n = intval($n);
return base_convert($n, $from_base, $to_base);
}
@picasso250
picasso250 / small-server.php
Last active December 21, 2015 08:19
A small server handel tcp request 一个非常小的服务器,用来监听TCP请求
<?php
set_time_limit(0); // 无限制的跑下去,跑到天荒地老
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// 绑定地址和端口
if (!socket_bind($socket, $config['tcp.host'], $config['tcp.port'])) {
die('socket bind fail');
}
<?php
set_error_handler(function ($errno, $errstr, $errfile, $errline, $errcontext) {
$msg = "$errno $errstr in $errfile:$errline ";
$trace = debug_backtrace();
array_shift($trace);
$trace = array_map(function ($e) {
$function = $e['function'];
if (isset($e['class'])) {
$function = $e['class'].$e['type'].$function;
}