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
    

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

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

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

     $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);
    ?>
    

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

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来搞这个事情啊。 不过,换一个角度,线程不行的,我就给个新进程呗。当然不是在当前进程创建新进程。
    (…继续阅读这篇文章…)

C(C++)、Java、PHP区别函数参数传递

    这篇文章,我专门测试了一下C、Java、PHP三种编程语言中对于函数(方法)参数传递的问题

    一、C/C++篇

    首先说明一下,这里仅在C语言下测试,C++类似,只不过在C++中多了一个传引用(&),其性质还是指针,传递过程中可以看作是使用别名。
    看代码:

    //
    //  main.c
    //  TestOfVlaue
    //
    //  Created by anthony on 16/4/16.
    //  Copyright © 2016年 Anthony. All rights reserved.
    //
    
    #include 
    //C语言测试
    void prt1(int v) {
        printf("方法内执行后的结果:%d\n",v);
    }
    void prt2(int v[],short int len) {
        for (int i=0; i
    

    运行结果:
    (...继续阅读这篇文章...)