发现自我2

为什么这篇文章叫做《发现自我2》,因为之前我已经写过了发现自我,今天是星期天,一个人来到公司,看看自己博客上面被自己标记为private的文章,写的全部都是自己过去相对与自己对话的博文,现在看看感觉和过去的自己隔着时空对话,同时也觉得现在的状态正是过去所处于的状态,其实我是在寻找解决方案。

现在状态:一份正常的IT工作(但绝没有达到我自己期望的水平,并且这段时间的学习劲头大幅度下降),没有女朋友(女性朋友都没有谈何女朋友),个人的说话交际实在成问题(能力太差,不管在社会上面做什么交际最重要,会交际,IT圈的朋友不愁,女性朋友不愁,想办成任何事情相对来说都比较简单)。

2012年3月10日 12:28:05
这篇文章存储为draft已经有一个多月了,再次提起键盘开始敲打。
如果自己的心中没有一些小九九,每天上班开开心心,充实,下班吃饭,周末玩的开开心心,那么不会再有这篇文章。
是的,最近是有一些事情在我的心中起了一些波澜,工作、交际、职业规划,抑制不住的sth导致身体状态不佳,从而导致工作效率不高,自信心受到打击。最近的公司人事变动的比较多,表面上我毫无表情,但是也深深的感受到一个公司的流动带来的不稳定。
ok,说到这里,是时候制定一个自己的职业规划了,有时候自己的脑袋里会蹦出创业、跳槽、出国等等想法,实际都是拍大腿的想法,不经过考虑这样一出去马上就会面临这困境。

之前写的计划三还是有一些笼统的,现在要确定的写一个有条条框框的计划。
发现自我2写到这里,over,如果7月10号能够完成计划中制定的条条框框的任务,自己给的第三块小甜饼是一台笔记本电脑.

serial sort(discontinuous serial combined to start_serial end_serial array)

<?php 
printf(' memory usage: %01.2f MB', memory_get_usage()/1024/1024); 
/*
     * sortBreakProcessor
     * example:
     * $serial    =    array('ab001','ab002','ab003','ab004','ab006','ab008','ab009','ab0010');
     * $start        =    4;
     * $length        =    1;
     * return array(
                  array('ab001','ab004'),
                  array('ab006','ab006'),
                  array('ab008','ab0010'),
                 );
    copy right http:://qqmaster.info/
*/
    $serial    	=    array('ab001','ab002','ab003','ab004','ab006','ab008','ab009','ab0010');
    $start      =    4;
    $length     =    1;
	$re			=	sortBreakProcessor($serial,$start,$length);
	var_dump($re);
    function sortBreakProcessor($serial,$start,$length)
    {
 
            if(!is_array($serial))
            {
                return false;
            }
            if(!isset($serial[0]) && empty($serial[0]))
            {
                return false;
            }
 
            $prefix    			=    substr($serial[0], 0,$start);
            $val    			=    '';
            foreach ($serial as $k=>$v)
            {
                $val[$k]     	=    substr($v, $start,$length);
            }
            //print_r($val);
 
            //Bubble sort
            $val    =    paixu($val);
            //print_r($val);
 
            //get 1,4,6,6,8,10
            $resultArr[]    =    $val[0];
            foreach ($val as $k=>$v)
            {
                if($val[$k]+1<$val[$k+1])
                {
                    $resultArr[]    =    $val[$k];
                    $resultArr[]    =    $val[$k+1];
                }
            }
            $resultArr[]    =    end($val);
            //print_r($resultArr);
 
            foreach ($resultArr as $k=>$v)
            {
                if($k%2==0)
                {
                    $return[] =    array($prefix.$resultArr[$k],$prefix.$resultArr[$k+1]);
                }
            }
            return $return;
    }
 
    //Bubble sort
    function paixu($str) 
    {
        $n=count($str);
        for ($i=0;$i<$n;$i++)
        {    
            for ($j=$n-2;$j>=$i;$j--)
            {
                    if($str[$j+1]<$str[$j])
                    {   
                        $tmp = $str[$j+1];
                        $str[$j+1]=$str[$j];
                        $str[$j]=$tmp;
                    }
 
            }
 
        }
        return $str;
    }

transfer serial from A to B(with a special db struct)

<?php
/*
 * use for to transfer card serial from a to b,but the serial a have is like this ab-cde-000000001 to ab-cde-000000009
 * when i want transfer (ab-cde-000000001 to ab-cde-000000003) or (ab-cde-000000003 to ab-cde-000000005) or (ab-cde-000000006 to ab-cde-000000009) to b
 * so there is a algorithm,see the function transCardById
 * db struct:id aid startSerial endSerial time
 * copy right http://qqmaster.info
 */
function transCardById($db, $startSerial,$endSerial,$serialId,$accountId, $newAccountId)
{
    $result        =    false;
    $serialInfo    =    test::getSerialById2($db,$serialId);
    if(!empty($serialInfo))
    {
        //echo '1';echo '<br />';
        $num                            =    '%1$09d';
        $prefixe                        =    test::getSerialPrefix($startSerial);
        $startSerialSuffix              =    test::getSerialSuffix($startSerial);
        $endSerialSuffix                =    test::getSerialSuffix($endSerial);
        $serialInfoStartSerialSuffix    =    test::getSerialSuffix($serialInfo['serialNumStart']);
        $serialInfoEndSerialSuffix      =    test::getSerialSuffix($serialInfo['serialNumEnd']);
        //echo $startSerialSuffix.'--'.$endSerialSuffix.'--'.$serialInfoStartSerialSuffix.'--'.$serialInfoEndSerialSuffix.'--';
        // 1,5
        if($serialInfoStartSerialSuffix==$startSerialSuffix)
        {
            //echo '2';echo '<br />';
            if($serialInfoEndSerialSuffix==$endSerialSuffix)
            {
                //echo '3';echo '<br />';
                // 1,5
                // update accountId To newAccountId
                $result    =    test::updateSerialById($db,$serialId,$newAccountId);
            }
            elseif($serialInfoEndSerialSuffix>$endSerialSuffix)
            {
                //echo '4';echo '<br />';
                // 1,3
                // update start serial to 4
                // add a record with newAccountId,serial from 1 to 3
                $result    =    test::updateSerialById($db,$serialId,'',$prefixe.sprintf($num,($endSerialSuffix+1)));
                if($result==true)
                {
                    //echo '5';echo '<br />';
                    $result    =    test::addCard($db, $startSerial, $endSerial, $newAccountId);
                }
            }
        }
        elseif($serialInfoStartSerialSuffix<$startSerialSuffix)
        {
            //echo '6';echo '<br />';
            if($serialInfoEndSerialSuffix==$endSerialSuffix)
            {
                //echo '7';echo '<br />';
                // 3,5
                // update end serial to 2
                // add a record with newAccountId,serial from 3 to 5
                $result    =    test::updateSerialById($db,$serialId,'','',$prefixe.sprintf($num,($startSerialSuffix-1)));
                if($result==true)
                {
                    //echo '8';echo '<br />';
                    $result    =    test::addCard($db, $startSerial, $endSerial, $newAccountId);
                }               
            }
            elseif($serialInfoEndSerialSuffix>$endSerialSuffix)
            {
                //echo '9';echo '<br />';
                // 3,4
                // update end serial to 2
                // add a record with accountId ,serial from 5 to 5
                // add a record with newAccountId ,serial from 3 to 4
                $result    =    test::updateSerialById($db,$serialId,'','',$prefixe.sprintf($num,($startSerialSuffix-1)));
                if($result==true)
                {
                    //echo '10';echo '<br />';
                    $result    =    test::addCard($db, $prefixe.sprintf($num,($endSerialSuffix+1)), $serialInfo['serialNumEnd'], $accountId);
                    if($result==true)
                    {
                        //echo '11';echo '<br />';
                        $result    =    test::addCard($db, $startSerial, $endSerial, $newAccountId);   
                    }
                }                   
            }
        }
    }
    return $result;
}
class test
{
    static public function checkSerialMatch($startSerial,$endSerial)
    {
        $result                    =    false;
        $checkStartSerialRight    =    self::checkSerialFormat($startSerial);
        $checkendSerialRight    =    self::checkSerialFormat($endSerial);
        if($checkStartSerialRight==true&&$checkendSerialRight==true)
        {
            //echo  '30';
            $startSerialPrefix    =    self::getSerialPrefix($startSerial);
            $endSerialPrefix    =    self::getSerialPrefix($endSerial);
            if($startSerialPrefix==$endSerialPrefix)
            {
                $startSerial    =    preg_replace('/^'.$startSerialPrefix.'/','',$startSerial);
                $endSerial    =    preg_replace('/^'.$endSerialPrefix.'/','',$endSerial);
                $startSerialNum    =    preg_replace('/^0*/','',$startSerial);
                $endSerialNum    =    preg_replace('/^0*/','',$endSerial);
                if($startSerialNum<=$endSerialNum)
                {
                    $result    =    true;
                }
            }
        }
        return $result;
    }
    static public function checkSerialFormat($serial)
    {
        if(strlen($serial)!=16)
        {
            //echo  '310';
            return false;
        }
//        $serialPrefix    =    substr($serial,0,7);
//        $serialPrefixArr=    explode('|', SERIAL_PREFIX);
//        if(!in_array($serialPrefix, $serialPrefixArr))
//        {
//            //echo  '311';
//            return false;
//        }
        $serialNum        =    substr($serial,-9);
        if(!is_numeric($serialNum))
        {
            //echo  '312';
            return false;
        }
        return true;
    }
    static public function getSerialPrefix($serial)
    {
        if(strlen($serial)!=16)
        {
            return false;
        }
        $serialPrefix    =    substr($serial,0,7);
        return $serialPrefix;       
    }
    static public function getSerialSuffix($serial,$removeZeroFlag=true)
    {
        $return    =    false;
        if(strlen($serial)==16)
        {
            $serialSuffix    =    substr($serial,-9);
            if($removeZeroFlag=true)
            {
                $serialSuffix    =    preg_replace('/^0*/', '', $serialSuffix);
            }
            $return            =    $serialSuffix;
        }
        return $return;       
    }
}

check serial match

this code is written is by myself,to check serial is match,thanks

<?php
/*
 * check serial match,like give two serial:ab-cde-000000123,ab-cde-000000234
 * copy right http://qqmaster.info/
 */
$test	=	test::checkSerialMatch('ab-cde-000000123','ab-cde-000000124');
var_dump($test);
$test	=	test::checkSerialMatch('ab-cde-000000123','ab-cde-000000122');
var_dump($test);
$test	=	test::checkSerialMatch('ab-cde-000000123','ab-cde-000000123');
var_dump($test);
class test
{
    static public function checkSerialMatch($startSerial,$endSerial)
    {
        $result                    =    false;
        $checkStartSerialRight    =    self::checkSerialFormat($startSerial);
        $checkendSerialRight    =    self::checkSerialFormat($endSerial);
        if($checkStartSerialRight==true&&$checkendSerialRight==true)
        {
            //echo  '30';
            $startSerialPrefix    =    self::getSerialPrefix($startSerial);
            $endSerialPrefix    =    self::getSerialPrefix($endSerial);
            if($startSerialPrefix==$endSerialPrefix)
            {
                $startSerial    =    preg_replace('/^'.$startSerialPrefix.'/','',$startSerial);
                $endSerial    =    preg_replace('/^'.$endSerialPrefix.'/','',$endSerial);
                $startSerialNum    =    preg_replace('/^0*/','',$startSerial);
                $endSerialNum    =    preg_replace('/^0*/','',$endSerial);
                if($startSerialNum<=$endSerialNum)
                {
                    $result    =    true;
                }
            }
        }
        return $result;
    }
    static public function checkSerialFormat($serial)
    {
        if(strlen($serial)!=16)
        {
            //echo  '310';
            return false;
        }
//        $serialPrefix    =    substr($serial,0,7);
//        $serialPrefixArr=    explode('|', SERIAL_PREFIX);
//        if(!in_array($serialPrefix, $serialPrefixArr))
//        {
//            //echo  '311';
//            return false;
//        }
        $serialNum        =    substr($serial,-9);
        if(!is_numeric($serialNum))
        {
            //echo  '312';
            return false;
        }
        return true;
    }
    static public function getSerialPrefix($serial)
    {
        if(strlen($serial)!=16)
        {
            return false;
        }
        $serialPrefix    =    substr($serial,0,7);
        return $serialPrefix;       
    }
    static public function getSerialSuffix($serial,$removeZeroFlag=true)
    {
        $return    =    false;
        if(strlen($serial)==16)
        {
            $serialSuffix    =    substr($serial,-9);
            if($removeZeroFlag=true)
            {
                $serialSuffix    =    preg_replace('/^0*/', '', $serialSuffix);
            }
            $return            =    $serialSuffix;
        }
        return $return;       
    }
}