検索
ホームページphp教程php手册PHP 無制限キャッシュ クラス拡張

PHP 無制限キャッシュ クラス拡張

Jun 13, 2016 pm 12:24 PM
phpコード使用減らす分類関数コピー確立する拡大する無制限状態親切カテゴリーキャッシュ

コードをコピー コードは次のとおりです:


/**
* 機能: 条件に基づいてカテゴリ キャッシュを作成し、カテゴリの使用量を削減します
* 作成日: Thu May 31 15:55:11 CST 2007
* 最終更新日:
* 著者: sanshi
*/

classtreeCache
{
var $tableName = "index_category" //テーブル名var $where = "1"; //条件
var $pidStr ="i_c_pid"; //pid のフィールド名
var $tempCode = array(); //生成されたファイルの配列var $pid = '0' //pidの初期値
var $db; //データベースハンドル
var $idStr="i_c_id"; //取得したデータID
var $title = " i_c_cn"; //名前フィールド
var $createArrayName = "treeCache"; //作成された配列の名前
var $createFileName =""; //作成されたファイルの名前
var $appendArr = array() ; //追加の属性、フィールド名はデータ内の名前に対応する必要があります。 set($db)
{
$this->db = $db;
$this->tempCode[] = "
}
;すべてのレベル 1 を取得します
function getRootID()
{
$sql = "SELECT {$this->idStr} FROM {$this->tableName} WHERE
{$this->>; pidStr}='{ $this->pid}' AND {$this->where} ";
//exit($sql);
$result = $this->db->; select($sql) ;
$temp = array();
foreach ($result as $r)
{
$temp[]=$r["{$this->idStr }"];
}
$this->tempCode[] = "${$this->createArrayName}['root']='".implode(',',$temp)." ';";
//print_r($temp);
return $temp;
}
//子 ID を取得
function getChildren($pid)
{
$sql = "SELECT {$this->idStr} FROM {$this->tableName} WHERE
{$this->pidStr}='{$pid}' AND {$this->where } ";
$result = $this->db->select($sql);
$temp = array();
foreach ($result as $r)
{
$temp[] =$r["{$this->idStr}"];
}
return $temp;
関数 getParent; ($cid)
{
$sql = "SELECT {$this->pidStr} FROM {$this->tableName} WHERE
{$this->idStr}='{$cid }' AND {$this ->where} ";
$result = $this->db->select($sql);
//print_r($result);exit();
return $result[ 0]["{$this->pidStr}"];
}
//上司の ID を取得
function getPidStr($cid,$pidStr="")
{
$pid=$this->getParent($cid);
$temp = array();
while ($pid!=$this->pid && !emptyempty($) pid)) {
$temp[] = $pid;
$pid=$this->getParent($pid);
//print_r($temp); return implode(',' ,$temp);
}
//深度を取得
function getDepth($cid,$ Depth=0)
{
$pid=$this-> ;getParent($cid) ;
$ Depth ;
if( $pid != $this->pid && !emptyempty($pid))
$ Depth = $this->getDepth($ pid,$ Depth);
return $ Depth;
}
// ファイルを作成します
function make()
{
if(empty($this->createFileName))
$this->createFileName = "{$this->createArrayName}.data.php";

$rootArr = $this->getRootID(); {$this->idStr},{$this->title},{$this->pidStr}";
foreach ($this->appendArr as $app)
{
if(emptyempty($app )) 続行;
$selectF .=",{$app}";
}
$sql = "{$this->tableName} から {$selectF} を選択しますWHERE
{$ this->where}";
$result = $this->db->select($sql);
for ($i=0;$i{
//id 値
$this->tempCode[] =
"${$this->createArrayName}['{$result[$ i][$this->idStr]}']['id']='{$result[$i]["{$this->idStr}"]}';";
//タイトル
$this->tempCode[] =
"${$this->createArrayName}['{$result[$i][$this->idStr]}']['title'] ='{$result[ $i]["{$this->title}"]}';";
//親 ID
$this->tempCode[] =
"$ {$this-> createArrayName}['{$result[$i][$this->idStr]}']['pid']='{$result[$i]["{$this-> pidStr}"]}' ;";
//Subid
$this->tempCode[] =
"${$this->createArrayName}['{$result[$i][ $this->idStr]}']['cid']='".implode(',',$this->getChildren($result[$i]["$this->idStr"])) ."';" ;
//ディレクトリの深さ
$this->tempCode[] =
"${$this->createArrayName}['{$result[$i][$this] ->idStr] }']['深さ']='".$this->getDepth($result[$i]["$this->idStr"])."';";
//親 ID ID 文字列
$this->tempCode[] =
"${$this->createArrayName}['{$result[$i][$this->idStr]} ']['pstr ']='".$this->getPidStr($result[$i]["$this->idStr"])."';";
//追加の属性を追加しました
foreach ( $this->appendArr as $app)
{
if(emptyempty($app)) continue;
$this->gt;tempCode[] =
"${$ this-> createArrayName}['{$result[$i][$this->idStr]}']['{$app}']='{$result[$i]["{$app}" ]}'; ";
}
}
$this->tempCode[] = "${$this->createArrayName} を返す;";
$this->tempCode[] = "?>";
//$content = implode("n",$this->tempCode);
//print_r( $this->tempCode);
$content = implode("n",$this->tempCode);
//ファイルを作成します
$fio=Factory::getBaseClass('FileIO') ;
if($this->is_utf8) $content = "xEFxBBxBF".$content;
$fio->writeFile($this->createFileName,$content); ;
}
}
//ロードされるファイルはデータベース接続用です
//データベースには選択メソッドが必要です
/*
include_once(dirname(dirname( __FILE__)). "/config/config.inc.php");
include_pATH."factryObject.class.php"); ;
$c = new TreeCache($db);
$c->make()
//exit(); "treeCache.data .php");
$treeCache=isset($treeCache) ? $treeCache : array();
$rootStr = isset($treeCache['root']) ? '] : " ";
echo parseTree($treeCache,$rootStr);
{
$tempStr = ""; explode(', ',$rootStr);
foreach ($temp AS $cid)
{
$info = $treeCache[$cid];
$cidStr = $info['cid' ];
$tempStr .= str_repeat('-',($info['深さ']-1)*3);
$tempStr.=$info['title']; empty($info ['pid']))
{
//追加の操作
}
$tempStr .= "
"
if(!empty( $info[' cid']))
$tempStr .=parseTree($treeCache,$info['cid']);
}
return $tempStr;
?
/**
* 機能: 条件に基づいてカテゴリ キャッシュを作成し、カテゴリの使用量を削減します
* 作成日: Thu May 31 15:55:11 CST 2007
* 最終更新日:
* 著者: sanshi
*/

クラス ツリーキャッシュ
{
var $tableName = "index_category"; name
var $where = "1"; //where 条件
var $pidStr ="i_c_pid"; //pid フィールド名
var $tempCode = array(); 🎜>var $pid = '0'; //pid の初期値
var $db; //データベースハンドル
var $idStr="i_c_id"; //取得したデータ ID
var $title = "i_c_cn "; //名前フィールド
var $createArrayName = "treeCache" //作成された配列の名前
var $createFileName ="" //作成されたファイルの名前
; $appendArr = array(); //追加の属性。フィールド名はデータ内の名前に対応する必要があります。
var $is_utf8 = false
function TreeCache()
{
} 関数セット($db)
{
$this->db = $db;
$this->tempCode[] = " //レベル 1 をすべて取得します
function getRootID()
{
$sql = "SELECT {$this->idStr} FROM {$this->tableName} WHERE
{$this- >pidStr}='{$ this->pid}' AND {$this->where} ";
//exit($sql);
$result = $this->db- >select($sql);
$temp = array();
foreach ($result as $r)
{
$temp[]=$r["{$this-> ;idStr}"];
}
$this->tempCode[] = "${$this->createArrayName}['root']='".implode(',',$temp) ."';";
//print_r($temp);
return $temp;
}
//子 ID を取得します
function getChildren($pid)
{
$sql = "SELECT { $this->idStr} FROM {$this->tableName} WHERE
{$this->pidStr}='{$pid}' AND {$this-> ;where} ";
$ result = $this->db->select($sql);
$temp = array();
foreach ($result as $r)
{
$temp[]= $r["{$this->idStr}"]
}
return $temp;
//夫の ID を取得します。 function getParent($cid)
{
$sql = "SELECT {$this->pidStr} FROM {$this->tableName} WHERE
{$this->idStr}='{ $cid}' AND {$this->where} ";
$result = $this->db->select($sql);
//print_r($result);exit() ;
return $result[0 ]["{$this->pidStr}"]
}
//上司の ID を取得する
function getPidStr($cid,$pidStr="" )
{
$ pid=$this->getParent($cid);
$temp = array();
while ($pid!=$this->pid && !empty ($pid)) {
$temp[] = $pid;
$pid=$this->getParent($pid);
//print_r($temp); 🎜>return implode(',', $temp);
}
//深度を取得します
関数 getDepth($cid,$ Depth=0)
{
$pid=$ this->getParent($cid);
$ Depth ;
if( $pid != $this->pid && !empty($pid))
$ Depth = $this-> getDepth($pid,$ Depth);
return $ Depth;
}
// ファイルを作成します
function make()
{
if(empty($this-> createFileName))
$this->createFileName = "{$this->createArrayName}.data.php";

$rootArr = $this->getRootID(); selectF = "{$this->idStr },{$this->title},{$this->pidStr}";
foreach ($this->appendArr as $app)
{
if(empty($app) ) 続行;
$selectF .=",{$app}";
}
$sql = "{$this-> から SELECT {$selectF} ;tableName} WHERE
{$this ->where}";
$result = $this->db->select($sql);
for ($i=0;$i<) ;count($result);$i )
{
//id 値
$this->tempCode[] =
"${$this->createArrayName}['{$結果[$i][$this-> ;idStr]}']['id']='{$result[$i]["{$this->idStr}"]}';";
//标题
$this->tempCode[] =
"${$this->createArrayName}['{$result[$i][$this->idStr]}']['title']='{$result[$i][" {$this->title}"]}';";
//父id
$this->tempCode[] =
"${$this->createArrayName}['{ $result[$i][$this->idStr]}']['pid']='{$result[$i]["{$this->pidStr}"]}';";
//子id
$this->tempCode[] =
"${$this->createArrayName}['{$result[$i][$this->idStr]}'] ['cid']='".implode(',',$this->getChildren($result[$i]["$this->idStr"]))."';";
/ /目录深度
$this->tempCode[] =
"${$this->createArrayName}['{$result[$i][$this->idStr]}'][' Depth']='".$this->getDepth($result[$i]["$this->idStr"])."';";
//父id的id串
$this->tempCode[] =
"${$this->createArrayName}['{$result[$i][$this->idStr]}']['pstr']='" .$this->getPidStr($result[$i]["$this->idStr"])."';";
//追加追加プロパティ
foreach ($this-> appendArr as $app)
{
if(empty($app)) continue;
$this->tempCode[] =
"${$this->createArrayName}['{ $result[$i][$this->idStr]}']['{$app}']='{$result[$i]["{$app}"]}';";
}
}
$this->tempCode[] = "${$this->createArrayName} を返します;";
$this->tempCode[] = "?>";
//$content = implode("n",$this->tempCode);
//print_r($this->tempCode);
$content = implode("n",$this->tempCode);
//建立文件
$fio=Factory::getBaseClass('FileIO');
if($this->is_utf8) $content = "xEFxBBxBF".$content;
$fio->writeFile($this->createFileName,$content);
$content を返す ; " /config/config.inc.php");
include_once(CLASSES_PATH."factryObject.class.php");

$db =factoryObject::getDB('indexPush');
$c = 新しいツリーキャッシュ($db);
$c->make();
//終了();

//做分析
include_once("treeCache.data.php");
$treeCache=isset($treeCache) ? $treeCache : array();
$rootStr = isset($treeCache['root']) ? $treeCache['root'] : "";
echo parseTree($treeCache,$rootStr);
関数 parseTree($treeCache,$rootStr)
{
$tempStr = "";
$temp =explode(',',$rootStr);
foreach ($temp AS $cid)
{
$info = $treeCache[$cid];
$cidStr = $info['cid'];
$tempStr .= str_repeat('-',($info['深さ']-1)*3);
$tempStr.=$info['title'];
if(empty($info['pid']))
{
//追加操作
}
$tempStr .= "
";
if(!empty($info['cid']))
$tempStr .=parseTree($treeCache,$info['cid']);
}
return $tempStr;
}
*/
?>

この種は改善されています、当初はこれを行っています、唯一能は数字の数として機能します、次は文字母了

另外就は解析に関するものです

プレーンコピーをクリップボードプリントに表示しますか?
class parseTree
{
var $ads_type_file = "";
var $isX = false;
var $rowSize=2;
function parseTree()
{
$this->ads_type_file = CACHE_PATH."ads_type_arr.data.php";
$this->ads_city_file = CACHE_PATH."ads_city_arr.data.php";
}
function make_ads_type()
{
$db = Factory::getDB("ads_type");
$tree =Factory::getItemClass('treeCache');
$tree->set($db);
$tree->テーブル名=$db->テーブル名;
$tree->pidStr ="ads_type_pid";
$tree->idStr = "ads_type_id";
$tree->title = "広告タイプ名";
$tree->createArrayName ="ads_type_arr";
$tree->where = " ads_type_state=1 ORDER BY ads_type_id DESC ";
$tree->appendArr = array("ads_type_info");
$tree->createFileName = $this->ads_type_file;
$tree->is_utf8 = true;
return $tree->make();
}
関数 get_ads_type_str()
{
$temp_arr = $this->get_ads_type_arr();
$treeArr = emptyempty($temp_arr) ? array() : $temp_arr;
$rootStr = isset($temp_arr['root']) ? $temp_arr['root'] : "";
$show_content = $this->__parseTree($treeArr,$rootStr,'pares_type_link');
$show_content を返す;
}
function get_ads_type_arr()
{
return is_file($this->ads_type_file) ? require($this->ads_type_file) : array();
}
function pares_type_link($info)
{
$class_name = "ads_type";
$tempStr = "[子-追加]";
$tempStr .="[编辑]";
$tempStr .="[删除]";
$tempStr を返す;
}
//提供されたクラスに基づいてクラス数を取得
function get_type_arr($type_no=0)
{
$temp_arr = $this->get_ads_type_arr();
$rootStr = $type_no==0 ? (isset($temp_arr['root'])?$temp_arr['root'] : "") : (isset($temp_arr[$type_no]['cid'])?$temp_arr[$type_no]['cid' ]:"");
$temp =explode(',',$rootStr);
$return_temp = array();
foreach($temp as $cid)
{
if(isset($temp_arr[$cid])) $return_temp[$temp_arr[$cid]['id']]=$temp_arr[$ cid]['タイトル'];
}
return $return_temp;
}

function make_ads_city()
{
$db = Factory::getDB("ads_city");
$tree =Factory::getItemClass('treeCache');
$tree->set($db);
$tree->テーブル名=$db->テーブル名;
$tree->pidStr ="ads_city_pid";
$tree->idStr = "ads_city_no";
$tree->title = "ads_city_name";
$tree->createArrayName ="ads_city_arr";
$tree->where = " ads_city_state=1 ORDER BY ads_city_no DESC ";
$tree->appendArr = array("ads_city_info");
$tree->createFileName = $this->ads_city_file;
$tree->is_utf8 = true;
return $tree->make();
}
function get_ads_city_arr()
{
return is_file($this->ads_city_file) ? require($this->ads_city_file) : array();
}
関数 get_ads_city_str()
{
$temp_arr = $this->get_ads_city_arr();
$treeArr = emptyempty($temp_arr) ? array() : $temp_arr;
$rootStr = isset($temp_arr['root']) ? $temp_arr['root'] : "";
$show_content = $this->__parseTree($treeArr,$rootStr,'pares_city_link');
$show_content を返す;
}
function pares_city_link($info)
{
$class_name = "ads_city";
$tempStr = "[子-追加]";
$tempStr .="[编辑]";
$tempStr .="[删除]";
$tempStr を返す;
}
//提供による城市号取得城市数组
function get_city_arr($city_no=0)
{
$temp_arr = $this->get_ads_city_arr();
$rootStr = $city_no==0 ? (isset($temp_arr['root'])?$temp_arr['root'] : "") : (isset($temp_arr[$city_no])?$temp_arr[$city_no]:"");
$temp =explode(',',$rootStr);
$return_temp = array();
foreach($temp as $cid)
{
if(isset($temp_arr[$cid])) $return_temp[$temp_arr[$cid]['id']]=$temp_arr[$ cid]['タイトル'];
}
return $return_temp;
}

関数 __parseTree($treeCache,$rootStr,$fuc_str)
{
$tempStr = "";
$temp =explode(',',$rootStr);
if(emptyempty($temp)) return "";
$this->layer=0;
foreach ($temp AS $cid)
{
if(isset($treeCache[$cid]))
{
$info = $treeCache[$cid];
$cidStr = $info['cid'];
//如果下面有子id
if($info["cid"]!="")
{
$tempStr .="

";
$tempStr .= str_repeat(' ',($info['深さ']-1)*3);
if($info["cid"]!="")
{
//$tempStr .="PHP 無制限キャッシュ クラス拡張";
}
//$tempStr .=">";
$tempStr.=$info['title'];
$tempStr .=$this->{$fuc_str}($info);
$tempStr .="
";
$tempStr .="
";
$tempStr .= $this->__parseTree($treeCache,$info['cid'],$fuc_str);
$tempStr .="
";
}else{
$this-> レイヤー ;
$tempStr .= str_repeat(' ',($info['深さ']-1)*3);
$tempStr.=$info['title'];
$tempStr .=$this->{$fuc_str}($info);
if($this->isX==true)
{
if($this->layer % $this->rowSize ==0)
$tempStr .= "< ;br/>";
else
$tempStr .= " ";
}else{
$tempStr .= "
";
}
}
}
}
return $tempStr;
}
}
?>

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン