X

由于无法提供服务器的高昂费用,博客即将迁移到github pages...

点击右上的X可以临时关闭此框并阻止跳转^_^

现在带您过去 秒后跳转...

我是如何将mac OS X(10.11.6)的PHP版本升级到5.6.29的


    由于项目和学习的需要,本机曾经升级到了5.5.38已经不够折腾了,所以时候升级一波5.6了(没必要到7的时候,我是不会去升级的)。
    首先直接去搜索引擎找便捷的方法呗,直接就选中了一款来自“简书”的文章,因为它就简单的一条命令:

    curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6
    

    看到这个地址,我心里就放心了!因为上一个版本也是liip的。
    我首先看了一下这个install.sh的内容,确定没有什么危险,里面其实就是检测一下设备的系统版本和cpu类型是否可以升级。
    环境检测没问题就去下载了一个叫做“packager.tgz”的压缩包,然后解压,运行里面的pythony脚本。

    #TYPE = 5.6-10.10
    sudo packager.py install $TYPE-frontenddev
    

    (…继续阅读这篇文章…)

JetBrains家的IDEA真不便宜

    先贴出来正版购买链接

    JetBrains公司的那些IDE真的是非常的好用,No.1的水准!一直都非常喜欢这家的产品,也难怪价格会稍微贵那么不止一点点了!
    IntelliJ IDEA专为Java打造,当然还有为PHP打造的PHPStorm,为javascript打造的WebStorm,为Python打造的PyCharm等等。
    不过今天不是来吹嘘JetBrains家的产品的,我是来吐槽自己买不起的事实。[/摊手]
    (…继续阅读这篇文章…)

初探MongoDB安全之RBAC(基于角色的访问控制)

    写在开头的一段话:我是一名忠实的SQL玩家,虽说MySQL并没有达到精通的级别,但在日常使用中还是会经常出现“这个表要是NoSQL的话就好办多了”的想法。所以说,我认为无论是站在关系型数据库还是非关系性数据库的立场上,二者并不是相对立的,而且我觉得应该用“相辅相成”来形容二者的关系。

    通过在《MongoDB 教程|菜鸟教程》轻量级的了解了一下MongoDB的基础知识,我在自己电脑上安装并使用了这款NoSQL软件。很明显地,读别人的教程只能是迅速的、简单的和容易理解的。也正是这样,我发现了其中有一块并没有提及!那就是并没有说要登录数据库啊。
    (…继续阅读这篇文章…)

实现寻找两个字符串的最大公子串的方法

    昨天在做土巴兔的校招笔试题的时候遇到的题目,就这一个编程题,然而当时却没有拿下,把它和字符串匹配中的子串包含给弄混了,哎!
    废话少说,上代码!

     $maxlen){	//当本次计数长度大于最大记录时
                        $maxlen = $count;	//更新最大计数长度
                        $start1 = $i;		//更新本次比较的字符串1起点
                        $start2 = $j;		//更新本次比较的字符串2起点
                    }
                }
            }
        }    
        return substr($str1,$start1,$maxlen);	//直接返回字符串1,从$start1起点往后$maxlen最大匹配长度个数的子串
    }
    
    $str1 = 'abcdefgabc';
    $str2 = 'defghijabc';
    echo MaxSubCommonStr($str1,$str2);
    ?>
    

    没什么含金量,只是写出来练练手,思路照搬过来的。

[合集]面试中遇到的那些提问

    参加了好几家公司的面试了,一直也没来得及将这些问题整理一下,今天正好不想到处跑了,所以先在这里写下这一篇文章,以后会不定期更新。

    非技术篇:

    1. 先来一个自我介绍吧(废话! =_=!)
    2. 用3个词组评价你自己
    3. 说一说你一生中感到最有成就感的一件事
    4. 说一说你曾经遇到过的最沮丧的一件事
    5. 说说你的优缺点
    6. 说说你的父母都是做什么的?
    7. 你有多少个兄弟姐妹?
    8. 你为什么选择来参加我们公司的招聘
    9. 你对加班的看法和出差的看法,以及你对加班和出差的最大忍耐极限
    10. 你觉得你在哪一方面比较优秀?
    11. 别人都是怎么评价你的?
    12. 在同一个Team中,当别人的意见和自己的意见冲突的时候,你会怎么办?
    13. 拿一个你最熟悉的项目来讲讲,它的架构、设计、遇到的问题以及是如何解决的
    14. 你对我们的开发团队有什么期望吗?
    15. 最后,你有什么想要问我的?


    (…继续阅读这篇文章…)

PHP常用算法的方法实现(冒泡、选择、插入、快排、二分查找)

    以前说起写算法,基本上都是拿C语言来写,因为用C可以更清楚的理解各种排序算法和数据结构。今天遍换成使用PHP语言来写几个常用的算法。
    这次要写的算法包括:

    • 冒泡排序
    • 插入排序
    • 选择排序(直接)
    • 快速排序
    • 二分查找

    冒泡:

    < ?php
    $arr = array(4,3,5,6,8,0,10,15,11);
    echo implode(' ',$arr);
    //冒泡排序 最坏 平均O(N^2) 最好O(N)
    function BubbleSort($arr){
    	$length = count($arr);
    	if($length <= 1){
    		return $arr;
    	}
    	for($i=0;$i<$length;$i++){
    		for($j=0;$j<$length-$i-1;$j++){
    			if($arr[$j] > $arr[$j+1]){
    				$tmp = $arr[$j];
    				$arr[$j] = $arr[$j+1];
    				$arr[$j+1] = $tmp;
    			}
    		}
    	}
    	return $arr;
    }
    echo "\nBubbleSort:\n";
    echo implode(' ',BubbleSort($arr))."\n";
    ?>
    

    (…继续阅读这篇文章…)

一种较好的实现PHP异步发送邮件的实现

    前些天在写我的TR-System(社团招新管理系统)的时候,用到了邮箱验证用户注册,也就是注册成功后,需要访问收到的邮件中的URL进行用户激活。这个事件发生在用户提交注册请求之后,系统需要立即发送一封邮件用于激活,但是系统在调用PHPMailer的时候需要进行SMTP连接邮箱系统(用的腾讯企业邮),往往在这个时候会出现等待的情况。如果让用户来承担这个等待时间,体验也太差了!,没见过哪个系统上注册个用户,还需要慢慢等待系统告诉我到底有没有注册成功。
    一开始在写的时候,直接在POST请求中处理,写入数据库后就调用sendEmail方法,情况是这样的:
    1.提交注册 --> 2.写入数据库 --> 3.发送Email --> 4.注册成功。
    这样在用户看来是有一个漫长的等待的。
    实际上应该为:

    1.提交注册 --> 2.写入数据库 --> 3.注册成功。
    ||||||||||||||||||-->发送Email

    这样的才是一个拥有良好用户体验的系统 ^_^ 。
    若是在Java等环境下,咱们可以很好利用多线程,分出来一个任务让另一个线程去完成。
    但是!PHP这个单线程环境下,没有new Thread来搞这个事情啊。 不过,换一个角度,线程不行的,我就给个新进程呗。当然不是在当前进程创建新进程。
    (…继续阅读这篇文章…)

通用笔试-PHP测试编程题[2题]

    水仙花数

    题目描述:
    春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
    “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。
    现在要求输出所有在m和n范围内的水仙花数。

    输入
    输入数据有多组,每组占一行,包括两个整数m和n(100< =m<=n<=999)。

    输出
    对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
    如果给定的范围内不存在水仙花数,则输出no;
    每个测试实例的输出占一行。

    样例输入

    100 120
    300 380

    样例输出

    no
    370 371

    < ?php
    echo "Please Input\n";
    $in = '';
    while($in != "\n"){
    	$first = false;
    	// $stdin = fopen("php://stdin",'r');
        // $in = fgets($stdin);
        $in = fgets(STDIN);//使用标准输入
        $args[] = explode(' ',trim($in));
    }
    // fclose($stdin);
    array_pop($args);
    foreach ($args as $item) {
    	if($item[0] <100 || $item[1]>999 || $item[0]>=$item[1]) {
    	  	echo "输入参数不合法!\n";
    	   	exit(0);
    	}
    	$start = $item[0];
    	$end = $item[1];
    	$res = array();
    	while($start < = $end){
    		$a = floor($start/100);
    		$b = floor(($start-$a*100)/10);
    		$c = $start%10;
    		if($start == ($a*$a*$a+$b*$b*$b+$c*$c*$c)){
    		    $res[] = $start;
    		}
    		$start += 1;
    	}
    	echo empty($res)?"No\n":implode(' ',$res)."\n";
    }
    ?>
    

    第二题:
    (…继续阅读这篇文章…)

1/7 1 2 3 ... »