2014年1月

PHP 计算两个文件的相对路径

没错这是我目前的得意之作之一,还特地写了CSS,虽然不怎么好……
所谓使尽浑身解数……

打了草稿,嗯虽然估计过会儿我自己都要看不懂了。(思路,{}的部分在写下来之后发现了共同点就合并了)

删除 . 和空白数组
比较相同元素,到不同时中断 统计b还有多少元素 不同元素的多少决定了..个数 按序输出不同元素
count数组中元素的大小,取小的那一个作为比较次数 比较一个元素删除一个元素
{如果比完完全符合 则如果b小 返回a剩余元素 b大 返回差集数组计算元素数返回../数
如果不完全符合,则b剩余元素替换为..后加上a剩余元素}
b剩余元素变为../后输出a剩余元素
如果输入文件名a/..

演示

为了找相对路径规律还写了不同的……

- 阅读剩余部分 -

PHP检查IP是否在指定范围内

题目如下:

输出用户的IP地址,并且判断用户的IP地址是否在192.168.1.100~192.168.1.150范围内。

当时想出了两种方法,一种把字符串按照.来拆分成数组,一个个范围比较,一种去掉点之后比较数字大小,可是后者有个问题,要是他们的IP地址不符合格式怎么办,还是得变成数组,所以就干脆用了前者。

演示

- 阅读剩余部分 -

PHP实现冒泡排序

冒泡排序,所有语言中的基础排序方法OTZ(画外音:那为什么你总是忘了冒泡排序的原理勒)

百度百科介绍:

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再?> 需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。

介绍2:

冒泡排序算法的运作如下:

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

- 阅读剩余部分 -

PHP array_multisort()多维数组排序实例

题目如下:
请将二维数组按照name的长度进行重新排序,按照顺序将id赋值(从1开始)。

    $Tarray = array(
        array('id' => 0, 'name' => '123'),
        array('id' => 0, 'name' => '1234'),
        array('id' => 0, 'name' => '123abc'),
        array('id' => 0, 'name' => '12345'),
        array('id' => 0, 'name' => '123456')
        );

- 阅读剩余部分 -

PHP 编写函数实现千位分组

这个,其实PHP还是有自带函数的,number_format()
扩展阅读:http://www.w3school.com.cn/php/func_string_number_format.asp

不过有的时候我真的是太依赖自带函数了,可能其他语言没那么强大的函数库就死了吧,所以这里还是需要动动脑子的,正好弥补代码量不足的问题。

缺点在于:小数死……(这个缺点有空修复好了= =目前正在赶进度……)

演示

- 阅读剩余部分 -

PHP 一个函数实现字符串反转

这其实还是一道题目OTZ当然不用在意这些细节,写出来之后它已经不算是题目了吧。

但我写的函数有个缺点,那就是它是以length分割的(因为还不会正则表达式),在PHP 语法糖一枚中提到过:

length = 1代表 截取一个字节,所以对于中文不适用。

2014年02月02日更新:PHP 实现中文字符串截取无乱码修复中文支持

中文截取就会出现乱码问题。

补刀:如果不是题目的话可以使用官方自带函数strrev()
扩展阅读:http://www.w3school.com.cn/php/func_string_strrev.asp

先来看一下函数部分吧。

- 阅读剩余部分 -

PHP 双引号内数组的正确输出方式

又是题目,除了题目我果然一无所有=A=

    <?php
         $fruits = array('strawberry'=>'red', 'banana'=>'yellow');
    ?>

A.echo "A banana is {$fruits['banana']}"; B.echo "A banana is $fruits['banana']";
C.echo "A banana is {$fruits[banana]}"; D.echo "A banana is $fruits[banana]";
结果选A,这是一件我觉得很神奇的事情,为什么B不行呢,因为就是那么规定的,至于D,会报错,但还是会有输出,不推荐,因为这个常量并没有被定义。

扩展阅读:http://www.php.net/manual/zh/language.types.string.php#language.types.string.parsing