<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>php on adolsai's echo</title><link>https://adolsai.com/tag/php/</link><description>Recent content in php on adolsai's echo</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 31 Mar 2014 21:10:26 +0800</lastBuildDate><atom:link href="https://adolsai.com/tag/php/index.xml" rel="self" type="application/rss+xml"/><item><title>CodeIgniter code completion in Zend Studio</title><link>https://adolsai.com/archives/45.html</link><pubDate>Mon, 31 Mar 2014 21:09:00 +0800</pubDate><guid>https://adolsai.com/archives/45.html</guid><description>&lt;p&gt;如何在Zend Studio中添加CodeIgniter框架的代码提示功能呢？&lt;/p&gt;&#10;&lt;p&gt;把以下代码分别增加到CI_Controller和CI_Model的类声明中，也就是注释里面：&lt;/p&gt;&#10;&lt;p&gt;在CI_Controller和CI_Model的类定义前追加如下代码。&#10;既能够进行代码提示，也能够在自定义Model中访问$this-&amp;gt;db了。&lt;/p&gt;</description></item><item><title>GB11643-1999 &amp;amp; ISO 7064 verify function</title><link>https://adolsai.com/archives/31.html</link><pubDate>Sat, 01 Mar 2014 11:10:00 +0800</pubDate><guid>https://adolsai.com/archives/31.html</guid><description>&lt;p&gt;&lt;a href="http://blog.csdn.net/nsq122/article/details/6699002"&gt;http://blog.csdn.net/nsq122/article/details/6699002&lt;/a&gt;&#10;身份证校验位的计算/ISO 7064:1983.MOD 11-2 算法&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;&amp;lt;?&#10;function iso7064($vString)&#10;{&#10;// ISO 7064:1983.MOD 11-2&#10;// by goseaside@sina.com&#10;$wi = array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);&#10;$hash_map = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');&#10;$i_size = strlen($vString);&#10;$bModify = '?' == substr($vString, -1);&#10;$i_size1 = $bModify ? $i_size : $i_size + 1;&#10;for ($i = 1; $i &amp;lt;= $i_size; $i++) { &#10;$i1 = $vString[$i - 1] * 1;&#10;$w1 = $wi[($i_size1 - $i) % 10];&#10;$sigma += ($i1 * $w1) % 11; &#10;}&#10;if($bModify) return str_replace('?', $hash_map[($sigma % 11)], $vString);&#10;else return $hash_map[($sigma % 11)];&#10;}&#10;/*&#10;// Demo&#10;// $s 为某个 17 位身份证号码，不包含校验位&#10;echo iso7064($s); // 获得校验位的值&#10;echo iso7064(&amp;quot;$s?&amp;quot;); // 包含校验位的结果&#10;*/&#10;?&amp;gt;&#10;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>namespace</title><link>https://adolsai.com/archives/13.html</link><pubDate>Wed, 26 Feb 2014 22:42:00 +0800</pubDate><guid>https://adolsai.com/archives/13.html</guid><description>&lt;p&gt;sb的我居然一直都没有用过这个东西...&lt;/p&gt;&#10;&lt;p&gt;度娘&#10;命名空间是用来组织和重用代码的编译单元。如同名字一样的意思，NameSpace（名字空间），之所以出来这样一个东西，是因为人类可用的单词数太少，并且不同的人写的程序不可能所有的变量都没有重名现象，对于库来说，这个问题尤其严重，如果两个人写的库文件中出现同名的变量或函数(不可避免)，使用起来就有问题了，为了解决这个问题，引入了名字空间这个概念，通过使用 namespace xxx；你所使用的库函数或变量就是在该名字空间中定义的，这样一来就不会引起不必要的冲突了。&lt;/p&gt;</description></item><item><title>endif,endwhile,endfor,endforeach and endswitch</title><link>https://adolsai.com/archives/12.html</link><pubDate>Wed, 26 Feb 2014 22:25:00 +0800</pubDate><guid>https://adolsai.com/archives/12.html</guid><description>&lt;p&gt;&lt;a href="http://www.cnblogs.com/janoyu/archive/2010/05/04/sourcejoy_com_php_other_syntax.html"&gt;http://www.cnblogs.com/janoyu/archive/2010/05/04/sourcejoy_com_php_other_syntax.html&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;我们经常在wordpress一类博客程序的模板里面看到很多奇怪的PHP语法，比如：&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;&amp;lt;?php if(empty($GET_['a'])): ?&amp;gt;&#10;&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;空的&amp;lt;/font&amp;gt;&#10;&amp;lt;?php endif; ?&amp;gt;&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;对于相当一部分PHP爱好者来说根本没见过啊，这些是什么东西呢？难道是那些博客的开发者自己搞的仿PHP的模板语言？&#10;非也，其实这些都是PHP的语法，只不过不常用而已，这些都是PHP流程控制的替代语法。&#10;这里就就给大家详细说一下PHP流程控制的替代语法。什么是替代语法？&#10;简单的说就是一些语法的另类写法。&lt;/p&gt;</description></item><item><title>getExcelTime function</title><link>https://adolsai.com/archives/9.html</link><pubDate>Wed, 26 Feb 2014 17:33:00 +0800</pubDate><guid>https://adolsai.com/archives/9.html</guid><description>&lt;p&gt;//转换excel的时间格式 get excel time&#10;function excelTime($date, $time = false) {&lt;br&gt;&#10;if(function_exists('GregorianToJD')){&lt;br&gt;&#10;if (is_numeric( $date )) {&lt;br&gt;&#10;$jd = GregorianToJD( 1, 1, 1970 );&lt;br&gt;&#10;$gregorian = JDToGregorian( $jd + intval ( $date ) - 25569 );&lt;br&gt;&#10;$date = explode( '/', $gregorian );&lt;br&gt;&#10;$date_str = str_pad( $date [2], 4, '0', STR_PAD_LEFT )&lt;br&gt;&#10;.&amp;quot;-&amp;quot;. str_pad( $date [0], 2, '0', STR_PAD_LEFT )&lt;br&gt;&#10;.&amp;quot;-&amp;quot;. str_pad( $date [1], 2, '0', STR_PAD_LEFT )&lt;br&gt;&#10;. ($time ? &amp;quot; 00:00:00&amp;quot; : '');&lt;br&gt;&#10;return $date_str;&lt;br&gt;&#10;}&lt;br&gt;&#10;}else{&lt;br&gt;&#10;$date=$date&amp;gt;25568?$date+1:25569;&lt;br&gt;&#10;/&lt;em&gt;There was a bug if Converting date before 1-1-1970 (tstamp 0)&lt;/em&gt;/&lt;br&gt;&#10;$ofs=(70 * 365 + 17+2) * 86400;&lt;br&gt;&#10;$date = date(&amp;quot;Y-m-d&amp;quot;,($date * 86400) - $ofs).($time ? &amp;quot; 00:00:00&amp;quot; : '');&lt;br&gt;&#10;}&lt;br&gt;&#10;return $date;&lt;br&gt;&#10;}&lt;/p&gt;</description></item></channel></rss>