存档

  • 如何设置一个严格30分钟过期的Session

    问题是Laruence在微博上提出的: 我在面试的时候, 经常会问一个问题: “如何设置一个30分钟过期的Session?”, 大家不要觉得看似简单, 这里面包含的知识多着呢, 特别适合考察基本功是否扎实, 谁来回答试试? 呵呵 说实话,如果是面试我的话,我回答不好。我找了一下stackoverflow发现有人讨论过同样的问题,How do I expire a PHP session after 30 minutes?,看了一下Gumbo回复应该是最好的。过了不久Laruence也整理了一篇文章,讲的更全面一些。 Gumbo说的对,要回到好这个问题只要弄清楚session.gc_maxlifetime和session.cookie_lifetime这两个配置的原理就可以了。 session.gc_maxlifetime这个时间是指的Session过多少时间会被session GC回收。这里需要主要以下几点 GC启动本身是有概率的( session.gc_probability和session.gc_divisor) 不同的脚本具有不同的 session.gc_maxlifetime 数值但是共享了同一个地方存储会话数据,则具有最小数值的脚本会清理数据。此情况下,与 session.save_path 一起使用本指令 GC和这个时间比较的时候是用的sesssion文件的mtime( >PHP 4.2.3)而不是atime session.cookie_lifetime 这个是Server发送给浏览器的cookie过期时间 所以只要明白了这两个配置的原理,那么这个问题至少会回答及格(我认为)。 所以手册很重要,不管是哪种技术,如果把手册研究一篇,搞懂80%以上,那么不是大牛也是个高级工程师鸟。  

    91 阅读 | 没有评论
    2012年1月10日 | 归档于 LAMP
    标签: PHP基础
  • ubuntu下安装 Apache+PHP+MySQL文本服务器

    12345678910111213141516171819202122232425#Install SSH Client and Server (for my remote access) sudo apt-get install ssh #Install Database Server sudo apt-get install mysql-server-5.0 #Install Apache HTTP Server sudo apt-get install apache2 #Install PHP5 and Apache PHP5 module sudo apt-get install php5 libapache2-mod-php5 #Restart Apache sudo /etc/init.d/apache2 restart #Optionally, install phpMyAdmin sudo apt-get install phpmyadmin sudo /etc/init.d/apache2 restart (重启 [...]

    164 阅读 | 3 条评论
    2011年11月15日 | 归档于 LAMP
  • 是不是要用array_key_exists函数

    在PHP中判断一个数组的特定索引的值是否存在,通常会用array_key_exists()函数。但是我们可能更熟悉另一个判断变量是否存在的函数isset(),当然我们也可以用isset()来判断数组中的值是否设置。 比如: 1234$a = array(’site’=>’blog.webfuns.net’); isset($a[’site’]); //同:array_key_exists(‘site’, $a); 两种方法都能达到同样的目的,但是通过测试发现isset()函数的效率更高。 1234567891011121314$a = range(1,1000); $a[’tom’] = ‘heng’; $begin = microtime(true); for($i=0; $i<100000; $i++){     array_key_exists(’tom’, $a); } $end = microtime(true); for($i=0; $i<100000; $i++){     isset($a[’tom’]); } $end2 = microtime(true); echo $end – $begin; echo ‘<br/>’; echo $end2 – $end; 测试结果: 0.053144931793213 0.014554023742676 可以看到isset()函数的效率要高四倍左右,这下知道以后该怎么办了吧。

    336 阅读 | 没有评论
    2011年8月6日 | 归档于 LAMP
    标签: PHP基础
  • substr_count函数

    PHP提供了很多很好用的内置函数,用好这些函数可以提高自己的效率,所以没事应该多看看php手册。 int substr_count ( string haystack, string needle) 函数可以统计haystack字符串中needle字符串的出现频率。 PS: haystack 草垛 needle 针 在草垛中找针

    353 阅读 | 没有评论
    2011年7月2日 | 归档于 LAMP
    标签: PHP基础
  • 创建多级目录的PHP函数

    因为目前在找工作,所以复习下PHP,尽管此题很无聊,但是还是练练手吧 创建多级目录的PHP函数 123456789101112131415//创建多级目录的PHP函数 function mmkdir(){   $nums=func_num_args();   if($nums>=1){    $arglist=func_get_args();    $rpath=’.';    foreach($arglist as $path){     $rpath.=’/’.$path;      mkdir($rpath);    }     } } mmkdir(’a',’b');

    501 阅读 | 没有评论
    2011年1月10日 | 归档于 LAMP
    标签: PHP基础
  • 一些常见的预定义全局变量

    $_SERVER['DOCUMENT_ROOT'] 当前运行脚本所在的文档根目录。在服务器配置文件中定义。    $_SERVER['HTTP_HOST '] 当前请求的 Host: 头部的内容 $_SERVER['REMOTE_ADDR'] 正在浏览当前页面用户的 IP 地址 $_SERVER['HTTP_REFERER'] 链接到当前页面的前一页面的 URL 地址 $_SERVER['SERVER_NAME'] 当前运行脚本所在服务器主机的名称 $_FILES 包含有所有上传的文件信息。 $_FILES['userfile']['name'] 客户端机器文件的原名称。 $_FILES['userfile']['type'] 文件的 MIME 类型,如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值。 $_FILES['userfile']['size'] 已上传文件的大小,单位为字节。 $_FILES['userfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名。 $_FILES['userfile']['error'] 和该文件上传相关的错误代码。

    460 阅读 | 没有评论
    2011年1月10日 | 归档于 LAMP
    标签: PHP基础
文章标签 ‘PHP基础’