标签 php 下的文章

CodeIgniter code completion in Zend Studio

如何在Zend Studio中添加CodeIgniter框架的代码提示功能呢?

把以下代码分别增加到CI_Controller和CI_Model的类声明中,也就是注释里面:

在CI_Controller和CI_Model的类定义前追加如下代码。
既能够进行代码提示,也能够在自定义Model中访问$this->db了。

- 阅读剩余部分 -

GB11643-1999 & ISO 7064 verify function

http://blog.csdn.net/nsq122/article/details/6699002
身份证校验位的计算/ISO 7064:1983.MOD 11-2 算法

<?
function iso7064($vString)
{
// ISO 7064:1983.MOD 11-2
// by goseaside@sina.com
$wi = array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
$hash_map = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
$i_size = strlen($vString);
$bModify = '?' == substr($vString, -1);
$i_size1 = $bModify ? $i_size : $i_size + 1;
for ($i = 1; $i <= $i_size; $i++) { 
$i1 = $vString[$i - 1] * 1;
$w1 = $wi[($i_size1 - $i) % 10];
$sigma += ($i1 * $w1) % 11; 
}
if($bModify) return str_replace('?', $hash_map[($sigma % 11)], $vString);
else return $hash_map[($sigma % 11)];
}
/*
// Demo
// $s 为某个 17 位身份证号码,不包含校验位
echo iso7064($s); // 获得校验位的值
echo iso7064("$s?"); // 包含校验位的结果
*/
?>

- 阅读剩余部分 -

namespace

sb的我居然一直都没有用过这个东西...

度娘
命名空间是用来组织和重用代码的编译单元。如同名字一样的意思,NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了,为了解决这个问题,引入了名字空间这个概念,通过使用 namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了。

关于php的::
http://www.php.net/manual/zh/language.namespaces.nsconstants.php

endif,endwhile,endfor,endforeach and endswitch

http://www.cnblogs.com/janoyu/archive/2010/05/04/sourcejoy_com_php_other_syntax.html

我们经常在wordpress一类博客程序的模板里面看到很多奇怪的PHP语法,比如:

<?php if(empty($GET_['a'])): ?>
<font color="red">空的</font>
<?php endif; ?>

对于相当一部分PHP爱好者来说根本没见过啊,这些是什么东西呢?难道是那些博客的开发者自己搞的仿PHP的模板语言?
非也,其实这些都是PHP的语法,只不过不常用而已,这些都是PHP流程控制的替代语法。
这里就就给大家详细说一下PHP流程控制的替代语法。什么是替代语法?
简单的说就是一些语法的另类写法。

- 阅读剩余部分 -

getExcelTime function

//转换excel的时间格式 get excel time
function excelTime($date, $time = false) {  
    if(function_exists('GregorianToJD')){  
        if (is_numeric( $date )) {  
        $jd = GregorianToJD( 1, 1, 1970 );  
        $gregorian = JDToGregorian( $jd + intval ( $date ) - 25569 );  
        $date = explode( '/', $gregorian );  
        $date_str = str_pad( $date [2], 4, '0', STR_PAD_LEFT )  
        ."-". str_pad( $date [0], 2, '0', STR_PAD_LEFT )  
        ."-". str_pad( $date [1], 2, '0', STR_PAD_LEFT )  
        . ($time ? " 00:00:00" : '');  
        return $date_str;  
        }  
    }else{  
        $date=$date>25568?$date+1:25569;  
        /*There was a bug if Converting date before 1-1-1970 (tstamp 0)*/  
        $ofs=(70 * 365 + 17+2) * 86400;  
        $date = date("Y-m-d",($date * 86400) - $ofs).($time ? " 00:00:00" : '');  
    }  
  return $date;  
}