-
- class DataCache
- {
- /**
- * 配列変換
- *
- * @param array $array
- * @param string $arrayName
- * @param array $level
- *
- * @return string
- */
- プライベート関数 arrayEval($array, $arrayName = '', $level = 0)
- {
- $space = str_repeat( "t", $level);
-
- if (emptyempty($arrayName))
- {
- $evaluate = "arrayn$space(n";
- }
- else
- {
- $evaluate = "${$arrayName} = arrayn$space(n";
- }
-
- $space2 = str_repeat("t", $level + 1);
- $comma = $space2;
- if (!emptyempty($array))
- {
- foreach ($array as $key => $val)
- {
- $key = is_string($key) '' . addcslashes($key, '') . '' : $key; ^-?[1-9]d*$/', $val) || strlen($val) > '' . addcslashes($val, ''') : $val;
- if (is_array($val))
- {
- $evaluate .= "$comma$key => " . arrayEval($val, '', $level + 1)
- }
- else
- {
- $evaluate . = "$comma$key => $val";
- }
- $comma = ",n$space2";
- }
- }
- $evaluate .= "n$space)" // 最後に必要な“;”
- if ($level == 0)
- {
- $evaluate .= ";"; }
- return $evaluate; }
-
- /**
- * ライトキャッシュ
- *
- * @param string $path
- * @param string $arrayName
- * @param array $data
- *
- * @return boolean
- */
- public static function writeCache($path , $arrayName, $data)
- {
- if ($handle = fopen($path, 'w+'))
- {
- $data = self::arrayEval($data, $arrayName);
-
- $dataConvert = "
- flock($handle, LOCK_EX);
- $rs = fputs($handle, $dataConvert);
- flock($handle, LOCK_UN);
- fclose($handle);
- if ($rs !== false)
- {
- true を返します。
- }
- }
- false を返します。
- }
- }
- ?>
-
-
- 复制代
-
-
调用方法:
/*** ファイルキャッシュを生成する * * @param string $filePath キャッシュファイルの保存パス - * @param string $arrayName キャッシュファイルに格納される配列名
- * @param array $data データ
- *
- * @return boolean
- */
- DataCache::writeCache($filePath, $arrayName, $data);
-
-
- 复制代码
-
-
memcache は、このファイル キャッシュのクラスをキャッシュするために使用されます。
|