月度存档: 二月 2011

nginx – 优化冗余路径配置。

server {
        listen       80;
        server_name  phpmyadmin.lezi.com;
        location / {
            root   /var/www/html/phpMyAdmin;
            index  index.php;
        }
            location ~ \.php$ {
                        root  /var/www/html/phpMyAdmin;
                        fastcgi_pass www.sgfblog.com:9000;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME /var/www/html/phpMyAdmin$fastcgi_script_name;
                        fastcgi_param  PATH_INFO $request_uri;
                        include fastcgi_params;
           }
   }

上面配置中可以看出路径非常冗余,如过修改路径需要改三个地方,
其实可以set一个变量,将路径写入变量,这样就下次修改的时候就只需要修改1个变量就好了。如下:

server {
        listen       80;
        server_name  phpmyadmin.lezi.com;
        set $root '/var/www/html/phpMyAdmin';
        location / {
            root   $root;
            index  index.php;
        }
            location ~ \.php$ {
                        root  $root;
                        fastcgi_pass www.sgfblog.com:9000;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $root$fastcgi_script_name;
                        fastcgi_param  PATH_INFO $request_uri;
                        include fastcgi_params;
           }
   }

php 任意进制互转类

之前不知道php自带有base_convert可以实现任意进制之间的转换,自己写了一个。。。。
继续阅读 »

php常用技巧

1、写程序的时候会用到这种情况,比如对一个数字进行四舍五入取整。很多人会这样写:

input a
if a - int(a) >= 0.5 then
a =  a +1
end if

其实这个判断语句可以使用一个很简单的表达式来写

a =  fix(a + sgn(a) *0.5)

用php写作:

$a =  intval($a +  0.5 *  ($a >0 ? 1 : -1)  );

分析:
假设 a为 4.4 那么 a+0.5 = 4.9 intval()以后为4 ,假设a为4.6 a+0.5=5.1 那么intval()以后则为5,因此实现了四舍五入。
正数+0.5 , 负数则-0.5。

如果说四舍五入保留2位小数也同理。

$a = intval<strong>(</strong>a * 100 + 0.5 * ($a >0 ? 1 : -1) <strong>)</strong> /100。 

2、 求如果a-b的值,如果小于0则取0,可以写城

$result =  max(0,$a-$b);

3、导入数据时,可以选择采用csv格式 php对getcsv处理起来非常方便。

4、在替换字符串方面 str_replace()比正则表达式更高效。实际上,根据Making the Web所说,str_replace()比像ereg_replace()和 preg_replace()这样的正则表达式效率要高61%。

5、if($a==true) if($a)

6、用isset判断变量和元素是否存在速度较高

7、尽量使用三目运算

8、适当写if行语句。适当在function内使用return语句 减少分支

9、使用memcache mogodb等降低程序与数据库负担

10、临时数据可以使用sqllite记录