PHP程序员面试时经常会被考的冒泡排序算法

PHP程序员在面试过程中,冒泡排序法应该是被考频率最高的,下面和大家分享一个PHP采用冒泡排序法对数组进行排序的函数。

<?php
//冒泡排序法
function bubble_sort($array)
{
    $count = count($array);
    if ($count <= 0) {
        return false;
    }
    for ($i=0; $i<$count; $i++) {
        for ($k=$count-1; $k>$i; $k--) {
            if ($array[$k] < $array[$k-1]) {
                $tmp = $array[$k];
                $array[$k] = $array[$k-1];
                $array[$k-1] = $tmp;
            }
        }
    }
    return $array;
}
$arr = array(3, 5, 1, 4, 2);
$s = bubble_sort($arr);
print_r($s);
?>

 

关于PHP下的mssql_connect()函数失效的解决方案

我给大家一个解决方案

第一步,检查你的程序是否存在问题,排除程序自身的问题。

第二步,要将服务器端的C:\windows\system32下的ntwdblib.dll和PHP安装目录下的ntwdblib.dll的版本号保持一致!

上述两步基本上就可以解决mssql_connect()函数无效的问题了!(这个问题害的我研究了半天!)

关于PHP的Session过期问题

在PHP开发过程中,可能有朋友经常会遇到Session所产生的文件无法自动清除的问题,其实并非真的无法清除,而是有一个概率问题,只要你的站点访问量足够大,那些文件就可以自动被清除掉。如果访问量比较少,又看那些文件不顺眼的话,只要在php.ini里的配置一下即可实现Session文件自动清除的功能,具体配置如下:

找到

session.gc_probability = 1

session.gc_divisor = 1000

上面这两项参数其实就是这个概率,默认情况下是1/1000

将 session.gc_divisor = 1000  改为 session.gc_divisor = 100 即可

如果想达到完全的实时,那么可以把这个参数改为1,这样概率就是100%了,呵呵!^^

关于PHP缓冲控制在IE浏览器下的应用

最近写程序的时候遇到一个问题,就是我用PHP控制浏览器缓冲,试了N次都无法实现想要的效果,具体程序见下面的代码:

<?php
for ($i=0; $i<10; $i++) {
    echo "<BR>".$i;
    flush();
    sleep(1);
}
?>

上面这段程序是实现每隔1秒钟在浏览器上输出一个字符,但实际效果是程序执行完后才把所有字符输出到浏览器上,调试了好几次都不行。在网上搜索了N个技术文章都没有解决这个问题。最后从一篇文章上找到些灵感,那篇文章里写到flush()函数可能在微软IE浏览器的个别版本上不起作用。

阅读更多

PHP的异常处理范例

<?php
try {
    $error = '这是一个自定义的异常报错信息';
    if (is_dir('./test')) {
        echo 'do sth.';
    } else {
        throw new Exception($error, 123456789); //通过throw语句抛出一个异常报错信息
    }
    echo '如果没有异常才会显示这句话<br>', "\n";
} catch(Exception $err) {
    $err_msg  = "程序出现异常:";
    $err_msg .= $err->getMessage();
    $err_msg .= $err->getCode();
    $err_msg .= "\n<br>";
    echo $err_msg; //显示报错信息和代码
}
echo '继续执行';
?>