<?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/category/php/</link><description>Recent content in php on adolsai's echo</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 30 Apr 2014 19:58:59 +0800</lastBuildDate><atom:link href="https://adolsai.com/category/php/index.xml" rel="self" type="application/rss+xml"/><item><title>easy way to save web's pv data</title><link>https://adolsai.com/archives/53.html</link><pubDate>Wed, 30 Apr 2014 19:57:00 +0800</pubDate><guid>https://adolsai.com/archives/53.html</guid><description>&lt;p&gt;目标：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;不访问数据库&lt;/li&gt;&#10;&lt;li&gt;使用xml文件保存近一周的统计数据&lt;/li&gt;&#10;&lt;li&gt;从apache的access_log文件中取数据&lt;/li&gt;&#10;&lt;li&gt;crontab运行，每日定时更新前一天的统计信息&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>enable apache's rewrite function on debian</title><link>https://adolsai.com/archives/47.html</link><pubDate>Wed, 02 Apr 2014 16:39:12 +0800</pubDate><guid>https://adolsai.com/archives/47.html</guid><description>&lt;p&gt;sudo a2enmod rewrite&lt;/p&gt;&#10;&lt;p&gt;指令后，即启用了 Mod_rewrite 模块。&lt;/p&gt;&#10;&lt;p&gt;另外，也可以通过将 /etc/apache2/mods-available/rewrite.load 连接到 /etc/apache2/mods-enabled/rewrite.load 来打开 Mod_rewrite 模块。用指令操作就是：&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load&#10;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Apache RewriteRule</title><link>https://adolsai.com/archives/46.html</link><pubDate>Tue, 01 Apr 2014 20:41:00 +0800</pubDate><guid>https://adolsai.com/archives/46.html</guid><description>&lt;p&gt;&lt;strong&gt;Apache中 RewriteRule 规则参数介绍&lt;/strong&gt;&lt;br&gt;&#10;摘要: Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。这里着重介绍 RewriteRule 规则以及参数说明。&#10;Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试，比如服务器变量、环境变量、HTTP头、时间标记，甚至各种格式的用于匹配URL组成部分的查找数据库。&lt;/p&gt;</description></item><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>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>