php缓存类
$oFC = new FileCache();
$sKey = 'ab_123';
$data = $oFC -> get($sKey);
if (is_null($data))
$oFC -> set($sKey, array('name' => 'ttt', 'datetime' => date('Y-m-d H:i:s')), 100000);
print_r($data);
<?php final class FileCache { /** * * * 缓存目录 * * * @var string */ private static $msCachePath = null; /** * * * 默认缓存失效时间(1小时) * * * @var int */ const miEXPIRE = 3600; /** * * * 构造<br /> * self::$msCachePath 缓存目录为共享目录 * * * @param string $sCachePath */ function __construct($sCachePath = './tmp/') { if (is_null(self :: $msCachePath)) self :: $msCachePath = $sCachePath; } /** * * * 读取缓存<br> * 返回: 缓存内容,字符串或数组;缓存为空或过期返回null * * * @param string $sKey 缓存键值(无需做md5()) * * @return string null * * @access public */ public function get($sKey) { if (empty($sKey)) return false; $sFile = self :: getFileName($sKey); if (!file_exists($sFile)) return null; else { $handle = fopen($sFile, 'rb'); if (intval(fgets($handle)) > time()) { // 检查时间戳 { //未失效期,取出数据 $sData = fread($handle, filesize($sFile)); fclose($handle); return unserialize($sData); } else { // 已经失效期 fclose($handle); return null; } } } /** * 写入缓存 * * * * @param string $sKey 缓存键值 * * @param mixed $mVal 需要保存的对象 * * @param int $iExpire 失效时间 * * @return bool * @access public */ public function set($sKey, $mVal, $iExpire = null) { if (empty($sKey)) return false; $sFile = self :: getFileName($sKey); if (!file_exists(dirname($sFile))) if (!self :: is_mkdir(dirname($sFile))) return false; $aBuf = array(); $aBuf[] = time() + ((empty($iExpire)) ? self :: miEXPIRE : intval($iExpire)); $aBuf[] = serialize($mVal); /** * 写入文件操作 */ $handle = fopen($sFile, 'wb'); fwrite($handle, implode("\n", $aBuf)); fclose($handle); return true; } /** * * * 删除指定的缓存键值 * * * @param string $sKey 缓存键值 * @return bool */ public function del($sKey) { if (empty($sKey)) return false; else { @unlink (self :: getFileName($sKey)); return true; } } /** * * * 获取缓存文件全路径<br> * 返回: 缓存文件全路径<br> * $sKey的值会被转换成md5(),并分解为3级目录进行访问 * * * @param string $sKey 缓存键 * * @return string * @access protected */ private static function getFileName($sKey) { if (empty($sKey)) return false; $key_md5 = md5($sKey); /** * $aFileName = array(); * $aFileName[] = rtrim(self :: $msCachePath, '/'); * $aFileName[] = $key_md5{0} . $key_md5{1}; * $aFileName[] = $key_md5{2} . $key_md5{3}; * $aFileName[] = $key_md5{4} . $key_md5{5}; * $aFileName[] = $key_md5; */ return self :: $msCachePath . '/' . $key_md5; // return implode('/', $aFileName); } /** * * * 创建目录<br> * * * * @param string $sDir * @return bool */ private static function is_mkdir($sDir = '') { if (empty($sDir)) return false; /** * 如果无法创建缓存目录,让系统直接抛出错误提示 */ echo $sDir; if (!mkdir($sDir, 0666)) return false; else return true; } }

使用Java的String.valueOf()函数将基本数据类型转换为字符串在Java开发中,当我们需要将基本数据类型转换为字符串时,一种常见的方法是使用String类的valueOf()函数。这个函数可以接受基本数据类型的参数,并返回对应的字符串表示。在本文中,我们将探讨如何使用String.valueOf()函数进行基本数据类型转换,并提供一些代码示例来

C语言return的用法有:1、对于返回值类型为void的函数,可以使用return语句来提前结束函数的执行;2、对于返回值类型不为void的函数,return语句的作用是将函数的执行结果返回给调用者;3、提前结束函数的执行,在函数内部,我们可以使用return语句来提前结束函数的执行,即使函数并没有返回值。

char数组转string的方法:可以通过赋值来实现,使用{char a[]=" abc d\0efg ";string s=a;}语法,让char数组对string直接赋值,执行代码即可完成转换。

源码:publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}#输出上述代码的输出可以简单地得出结论:return在finally之前执行,我们来看下字节码层面上发生了什么事情。下面截取case1方法的部分字节码,并且对照源码,将每个指令的含义注释在

使用Java的String.replace()函数替换字符串中的字符(串)在Java中,字符串是不可变的对象,这意味着一旦创建了一个字符串对象,就无法修改它的值。但是,你可能会遇到需要替换字符串中的某些字符或者字符串的情况。这时候,我们可以使用Java的String类中的replace()方法来实现字符串的替换。String类的replace()方法有两种重

使用Java的String.length()函数获取字符串的长度在Java编程中,字符串是一种非常常见的数据类型,我们经常需要获取字符串的长度,即字符串中字符的个数。在Java中,我们可以使用String类的length()函数来获取字符串的长度。下面是一个简单的示例代码:publicclassStringLengthExample{publ

一、认识String1.JDK中的String首先我们看看JDK中的String类源码,它实现了很多接口,可以看到String类被final修饰了,这就说明String类不可以被继承,String不存在子类,这样所有使用JDK的人,用到的String类都是同一个,如果String允许被继承,每个人都可以对String进行扩展,每个人使用的String都不是同一个版本,两个不同的人使用相同的方法,表现出不同的结果,这就导致代码没办法进行开发了继承和方法覆写在带来灵活性的同时,也会带来很多子类行为不

String中split方法使用String的split()方法用于按传入的字符或字符串对String进行拆分,返回拆分之后的数组。1、一般用法用一般的字符,例如@或,等符号做分隔符时:Stringaddress="上海@上海市@闵行区@吴中路";String[]splitAddr=address.split("@");System.out.println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

WebStorm Mac version
Useful JavaScript development tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.
