{$smarty.now|date_format:"%Y年%m月%d日"} 这样写就成了"2010年%m月%d日"+一些乱码如果给汉字后加上空格就正常了,但是输出也有了空格。

为了解决这个问题,我去读了smarty的插件代码modifier.date_format.php:
发现里面strftime这个PHP函数对于中文支持不好。
所以我修改了modifier.date_format.php函数,一劳永逸啊。大家可以直接复制替换原有内容即可。
而且我这个函数还是支持繁简中文的哦。呵呵
function smarty_modifier_date_format($string, $format = '%b %e, %Y', $default_date = '')
{
   if (substr(PHP_OS,0,3) == 'WIN') {
           $_win_from = array ('%e',   '%T',        '%D');
           $_win_to    = array ('%#d', '%H:%M:%S', '%m/%d/%y');
           $format = str_replace($_win_from, $_win_to, $format);
    }
   $arrTemp = array('年','月','日','时','分','秒','時');
   foreach($arrTemp as $v){
     if(strpos($format,$v)){
       $strFormat = str_replace('%','',$format);
     }
   }
    if($string != '') {
    if(!empty($strFormat)) return date($strFormat, smarty_make_timestamp($string));
    else return strftime($format, smarty_make_timestamp($string));
    } elseif (isset($default_date) && $default_date != '') {
     if(!empty($strFormat)) return date($strFormat, smarty_make_timestamp($default_date));
        else return strftime($format, smarty_make_timestamp($default_date));
    } else {
        return;
    }

}
经常看到一些下载站做了一些专用软件下载地址,例如:迅雷下载地址,快车下载地址。那么这些地址怎么得来的呢?
现在就链接的编码原理及转换详细说明一下,明白以后就可以用迅雷下载快车、旋风专用地址的软件啦。

  首先要明白Base64编码是怎么一回事,不懂的先去百度一下再回来。
  Base64编码是一种加密算法,Email的原始信息就是由Base64编码构成的。
  而这些专用链接都是通过Base64编码加工转换而成的。

  1、迅雷专用链接编码
  在原地址前面加”AA”,后面加”ZZ”(不包括引号),地址变为
  AAhttp://www.biweb.cn/biweb.rarZZ
  此地址base64编码为
  QUFodHRwOi8vd3d3LmJpd2ViLmNuL2Jpd2ViLnJhclpa
  迅雷专链即在上地址前加thunder://,即
  Thunder://QUFodHRwOi8vd3d3LmJpd2ViLmNuL2Jpd2ViLnJhclpa

  2、快车专用链接编码
  在原地址前后都加上”[FLASHGET]“(不包括引号),地址变为
  [FLASHGET]http://www.biweb.cn/biweb.rar[FLASHGET]
  此地址base64编码为
  W0ZMQVNIR0VUXWh0dHA6Ly93d3cuYml3ZWIuY24vYml3ZWIucmFyW0ZMQVNIR0VUXQ==  快车专链即在上地址前加flashget://,注意后面还要加上”&符号”,符号怎么得出不清楚,在最后后面加的是好好爱的个人信息,至今未有人报告转换错误,即
  Flashget://W0ZMQVNIR0VUXWh0dHA6Ly9pbS5iYWlkdS5jb20vaW5zdGFsbC9CYWlkdUhpLmV4ZVtGTEFTSEdFVF0=&arthurxf

  3、旋风专用链接编码
  旋风相对就简单多了,将原地址直接base64编码为
  aHR0cDovL3d3dy5iaXdlYi5jbi9iaXdlYi5yYXI=
  旋风专链即在上地址前加qqdl://,即
  qqdl://aHR0cDovL3d3dy5iaXdlYi5jbi9iaXdlYi5yYXI=

这样你的软件下载的时候就可以提供专用软件下载地址了。还可以给自己的原始地址保护起来。呵呵。本文是由Arthurxf倾情奉献!
经常看到一些下载站做了一些专用软件下载地址,例如:迅雷下载地址,快车下载地址。那么这些地址怎么得来的呢?
现在就链接的编码原理及转换详细说明一下,明白以后就可以用迅雷下载快车、旋风专用地址的软件啦。

  首先要明白Base64编码是怎么一回事,不懂的先去百度一下再回来。
  Base64编码是一种加密算法,Email的原始信息就是由Base64编码构成的。
  而这些专用链接都是通过Base64编码加工转换而成的。

  1、迅雷专用链接编码
  在原地址前面加”AA”,后面加”ZZ”(不包括引号),地址变为
  AAhttp://www.biweb.cn/biweb.rarZZ
  此地址base64编码为
  QUFodHRwOi8vd3d3LmJpd2ViLmNuL2Jpd2ViLnJhclpa
  迅雷专链即在上地址前加thunder://,即
  Thunder://QUFodHRwOi8vd3d3LmJpd2ViLmNuL2Jpd2ViLnJhclpa

  2、快车专用链接编码
  在原地址前后都加上”[FLASHGET]“(不包括引号),地址变为
  [FLASHGET]http://www.biweb.cn/biweb.rar[FLASHGET]
  此地址base64编码为
  W0ZMQVNIR0VUXWh0dHA6Ly93d3cuYml3ZWIuY24vYml3ZWIucmFyW0ZMQVNIR0VUXQ==  快车专链即在上地址前加flashget://,注意后面还要加上”&符号”,符号怎么得出不清楚,在最后后面加的是好好爱的个人信息,至今未有人报告转换错误,即
  Flashget://W0ZMQVNIR0VUXWh0dHA6Ly9pbS5iYWlkdS5jb20vaW5zdGFsbC9CYWlkdUhpLmV4ZVtGTEFTSEdFVF0=&arthurxf

  3、旋风专用链接编码
  旋风相对就简单多了,将原地址直接base64编码为
  aHR0cDovL3d3dy5iaXdlYi5jbi9iaXdlYi5yYXI=
  旋风专链即在上地址前加qqdl://,即
  qqdl://aHR0cDovL3d3dy5iaXdlYi5jbi9iaXdlYi5yYXI=

这样你的软件下载的时候就可以提供专用软件下载地址了。还可以给自己的原始地址保护起来。呵呵。本文是由Arthurxf倾情奉献!
  一般我们要查看网上的一个网页,那么当您第一次访问这个网页的时候,系统首先要将这个网页下载到您的本地计算机的一个临时文件夹中进行缓存,当在一定的时间内,您第二次、第三次来访问这个网页的时候,浏览器就直接从您的本地计算机的临时文件夹中读取这个文件显示,这样做的好处就是避免每次都要重新下载而占用大量的时间和网络资源,不得不说页面的缓存加快了网页的显示,当然也有它的坏处,例如当服务器上的网页己经更新,而本地显示的还是没有更新的网页,这样就不能及时的显示更新后的内容,在某些情况下,我们需要禁止浏览器缓存,以使我们每次看到的页面都是最新的页面(例如后台操作、大型网站的时时新闻页面),这时我们就要禁用浏览器缓存,下面分别说明了在四种不同的页面环境下来禁止网页缓存:

一、对于静态页:

可以利用标记符的另一种用法来实现,其用法为:



特别说明:有很多人问到,这样设置了没有用,网页仍有缓存,那是因为您没有设置页面过期时间的原因,您必须同时指定当前页面的过期时间,例如:

这儿的meta标签用来定义页面过期时间为:2006年8月23日 23:40:27
需要特别注意的是content的值必须是一个UTC格式的标准时间(有关UTC格式的时间,请参见本站javascript教程)或者GMT时间(由于GMT时间己过时,所以建议用UTC标准格式),如果您要让网页立即过期,您可以设置一个过期时间远小于现在的时间,例如:
Mon,1 Jan 2001 0:0:0 UTC

二、对于ASP页面:

可利用以下语句下实现:

<%
Response.Buffer=true
Response.CacheControl="no-cache"    '禁止代理服务器缓存本页面
Response.Expires=-1000                          '让页面立即过期(这儿最好设置一个绝对值较大的负数)
%>

三、对于JSP页面:
<%
if (request.getProtocol().compareTo("HTTP/1.0")==0)
     response.setHeader("Pragma","no-cache");
if (request.getProtocol().compareTo("HTTP/1.1")==0)
     response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>

四、对于PHP页面:

   header ("Cache-Control: no-cache, must-revalidate");  
   header ("Pragma: no-cache");  
?>

  说明:对于动态页面,缓存的代码必须放在任何HTML标签输出之前,否则将会出错。
  一般我们要查看网上的一个网页,那么当您第一次访问这个网页的时候,系统首先要将这个网页下载到您的本地计算机的一个临时文件夹中进行缓存,当在一定的时间内,您第二次、第三次来访问这个网页的时候,浏览器就直接从您的本地计算机的临时文件夹中读取这个文件显示,这样做的好处就是避免每次都要重新下载而占用大量的时间和网络资源,不得不说页面的缓存加快了网页的显示,当然也有它的坏处,例如当服务器上的网页己经更新,而本地显示的还是没有更新的网页,这样就不能及时的显示更新后的内容,在某些情况下,我们需要禁止浏览器缓存,以使我们每次看到的页面都是最新的页面(例如后台操作、大型网站的时时新闻页面),这时我们就要禁用浏览器缓存,下面分别说明了在四种不同的页面环境下来禁止网页缓存:

一、对于静态页:

可以利用标记符的另一种用法来实现,其用法为:



特别说明:有很多人问到,这样设置了没有用,网页仍有缓存,那是因为您没有设置页面过期时间的原因,您必须同时指定当前页面的过期时间,例如:

这儿的meta标签用来定义页面过期时间为:2006年8月23日 23:40:27
需要特别注意的是content的值必须是一个UTC格式的标准时间(有关UTC格式的时间,请参见本站javascript教程)或者GMT时间(由于GMT时间己过时,所以建议用UTC标准格式),如果您要让网页立即过期,您可以设置一个过期时间远小于现在的时间,例如:
Mon,1 Jan 2001 0:0:0 UTC

二、对于ASP页面:

可利用以下语句下实现:

<%
Response.Buffer=true
Response.CacheControl="no-cache"    '禁止代理服务器缓存本页面
Response.Expires=-1000                          '让页面立即过期(这儿最好设置一个绝对值较大的负数)
%>

三、对于JSP页面:
<%
if (request.getProtocol().compareTo("HTTP/1.0")==0)
     response.setHeader("Pragma","no-cache");
if (request.getProtocol().compareTo("HTTP/1.1")==0)
     response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>

四、对于PHP页面:

   header ("Cache-Control: no-cache, must-revalidate");  
   header ("Pragma: no-cache");  
?>

  说明:对于动态页面,缓存的代码必须放在任何HTML标签输出之前,否则将会出错。
分页: 8/29 第一页 上页 3 4 5 6 7 8 9 10 11 12 下页 最后页 [ 显示模式: 摘要 | 列表 ]