無限歸來之超級警察 php 無限級快取的類別的擴展
複製程式碼 程式碼如下:
/**
* 功能: 根據條件建立分類快取減少類別使用
* 建立日期:Thu May 31 15:55:11 CST 2007
* 最後更新:
* 作者: sanshi
*/
class treeCache
{
var $tableName = "index_category"; //表名
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 =""; //建立檔案的名字
var $appendArr = array(); //附加的屬性,需要欄位名稱與資料裡的名稱對應
var $is_utf8 = false;
function treeCache()
{
}
function set($db)
{
$this->db = $db;
$this->tempCode[] = "}
//取得所有的一級
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 && !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(emptyempty($ this->createFileName))
$this->createFileName = "{$this->createArrayName}.data.php";
$rootArr = $this->getRootID();
$selectF = " {$this->idStr},{$this->title},{$this->pidStr}";
foreach ($this->appendArr as $app)
{
if(emptyempty( $app)) continue;
$selectF .=",{$app}";
}
$sql = "SELECT {$selectF} FROM {$this->tableName} 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}"]}';";
//子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(emptyempty($app)) continue;
; $this->tempCode[] =
"${$this->createArrayName}['{$result[$i][$this->idStr]}']['{$app}']='{ $result[$i]["{$app}"]}';";
}
}
$this->tempCode[] = "return ${$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);
return $content ;
}
}
//載入的檔案就是為了,資料庫連線
//需要資料庫有select 方法
/*
include_once(dirname(dirname(__FILE__))."/config/config.inc. php");
include_once(CLASSES_PATH."factryObject.class.php");
$db = factryObject::getDB('indexPush');
$c = new treeCache($db);
$c->make();
//exit();
//做分析
include_once("treeCache.data.php");
$treeCache=isset($treeCache.data.php");
$treeCache=isset($treeCache ) ? $treeCache : array();
$rootStr = isset($treeCache['root']) ? $treeCache['root'] : "";
echo parseTree($treeCache,$rootStr);
function parseTree($treeCache,$rootStr)
{
$tempStr = "";
$temp = explode(',',$rootStr);
foreach ($temp AS $ cid)
{
$info = $treeCache[$cid];
$cidStr = $info['cid'];
$tempStr .= str_repeat('-',($info[ 'depth']-1)*3);
$tempStr.=$info['title'];
if(empty($info['pid']))
{
/ /附加操作
}
$tempStr .= "
";
if(!empty($info['cid']))
$tempStr .=parseTree($treeCache, $info['cid']);
}
return $tempStr;
}
*/
?>
/**
* 功能: 根據條件建立分類快取減少類別使用
* 建立日期:Thu May 31 15:55:11 CST 2007
* 最後更新:
* 作者: sanshi
* /
class treeCache
{
var $tableName = "index_category"; //表名
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 =""; //建立檔案的名字
var $appendArr = array(); //附加的屬性,需要欄位名稱與資料裡的名稱對應
var $is_utf8 = false;
function treeCache()
{
}
function set($db)
{
$this->db = $db;
$this-tempCodeCode [] = "}
//取得所有的一級
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 );
}
//取得深度
function 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)) continue;
$selectF .=",{$app} ";
}
$sql = "SELECT {$selectF} FROM {$this->tableName} 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}"]}';";
//子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]}']['height']='".$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))
$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);
回傳$內容;
}
}
//載入的檔案就是為了,資料庫連線
//需要資料庫有select方法
/ *
include_once(dirname(dirname(__FILE__))." /config/config.inc.php");
include_once(CLASSES_PATH."factryObject.class.php"); =factoryObject::getDB('indexPushtory::getDB('indexPush ');
$c = new treeCache($db);
$c->make();
//退出();分析
include_once("treeCache.data.php") ;
$treeCache=isset($treeCache) ? $treeCache : 備份();
$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']);
}
回傳 $tempStr;
}
*/
?>
這個類別是改過的,剛開始做這個的適合,只能是數字的資料庫下標,這次支援字母了
另外就是關於解析
查看普通副本到剪貼簿列印?
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->tableName=$db->tableName;
$tree->pidStr ="ads_type_pid";
$tree->idStr = "ads_type_id";
$tree->title = "ads_type_name";
$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;
回傳$tree->make();
}
函數 get_ads_type_str()
{
$temp_arr = $this->get_ads_type_arr();
$treeArr = 空($temp_arr) ? 記憶體():$temp_arr;
$rootStr = isset($temp_arr['root']) ? $temp_arr['root'] : "";
$show_content = $this->__parseTree($treeArr,$rootStr,'pares_type_link');
回傳$show_content;
}
函數 get_ads_type_arr()
{
傳回 is_file($this->ads_type_file) ?需要($this->ads_type_file) : array();
}
函數 pares_type_link($info)
{
$class_name = "ads_type";
$tempStr = "[子-加]";
$tempStr .="[編輯]";
$tempStr .="[刪除]";
return $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]['title']
}
return $return_temp;
}
function make_ads_city()
{
$db = Factory::getDB(" ads_city");
$tree =Factory::getItemClass('treeCache');
$tree->set($db);
$tree->tableName= $db->tableName;
$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_f88 = true;
回傳$tree->make();
}
函數 get_ads_city_arr()
{
傳回 is_file($this->ads_city_file) ?(需要$this->ads_city_file) : array();
}
函數 get_ads_city_str()
{
$temp_arr = $this->get_ads_city_arr();
$treeArr = 空($temp_arr) ? 記憶體():$temp_arr;
$rootStr = isset($temp_arr['root']) ? $temp_arr['root'] : "";
$show_content = $this->__parseTree($treeArr,$rootStr,'pares_city_link');
回傳$show_content;
}
函數 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_temp;
}
函數 __parseTree($treeCache,$rootStr,$fuc_str)
{
$tempStr = "";
$temp =explode(',',$rootStr);
if(emptyempty($temp)) return "";
$this->層=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 .="";
}
//$tempStr .=">";
$tempStr.=$info['title'];
$tempStr .=$this->{$fuc_str}($info);
$tempStr .="
$tempStr .="
$tempStr .= $this->__parseTree($treeCache,$info['cid'],$fuc_str);
$tempStr .="";
}else{
$this->layer++;
$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 .= "
」;
其他
$tempStr .= "
}else{
$tempStr .= "
";
}
}
}
}
回傳$tempStr;
}
}
?
以上就介紹了無限歸來之超級警察php無限級存儲類的擴展,包括無限歸來之超級警察方面的內容,希望對PHP教程有興趣的朋友有所幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。
