亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php中adodbzip類實例

2020-03-22 18:18:22
字體:
來源:轉載
供稿:網友
本文實例講述了php中adodbzip類html' target='_blank'>程序代碼。分享給大家供大家參考。具體如下:復制代碼 代碼如下: php
/**
* AdodbZip 1.1
*
* 代碼示例:
* include_once 'AdodbZip.php';
* $db = AdodbZip::init(NewADOConnection('mysql教程t'));
* echo $db- GetOne('SELECT NOW()');
*
* 流程說明:
* 1. 如果$extract_dir里的Adodb程序文件存在,并且$zip_file不存在;則使用$extract_dir里的Adodb程序文件。
* 2. 如果$extract_dir里的Adodb程序文件存在,并且$zip_file存在;則比較修改時間,$extract_dir里的Adodb程序文件更新為較新的。
* 3. 如果$extract_dir里的Adodb程序文件不存在,并且$zip_file存在;則$extract_dir里的Adodb程序文件從$zip_file解壓獲得。
* 4. 如果 $extract_dir里的Adodb程序文件不存在,并且$zip_file不存在;則從$zip_url下載Adodb的Zip文件,并解壓Adodb的程序文件。
* 其他說明:
* 1. $extract_dir可自定義。如果將Adodb的Zip包完全解壓到此目錄,則可忽略$zip_url和$zip_file設置項,這和傳統使用Adodb一樣。
* 2. $zip_file可自定義。如果$zip_file存在,則可忽略$zip_url,這樣可整站統一使用$zip_file。
* 3. $zip_url可自定義??呻S時修改Adodb版本,此時$zip_file和$extract_dir最好使用默認值,各版本互不干擾。
* 4. $server、$user、$pwd、$db可自定義。默認是mysql默認值,此項只有調用AdodbZip::init方法后才起效果。
* 5. $charset可自定義。默認不改變編碼,此項只有調用AdodbZip::init方法后才起效果。
* 6. AdodbZip::init方法里可增加Adodb初始化值。
*/

/**
* AdodbZip啟動項
*/
// 設定參數
AdodbZip::$zip_url = 'http://c.net教程works-kr-1.dl.sourceforge.net/project/adodb/adodb-php5-only/adodb-509-for-php5/adodb509.zip'; //[設置項]Adodb的Zip文件下載地址,文件比較大建議先下載或者解壓
AdodbZip::$zip_file = sys_get_temp_dir () . preg_replace ( '/^.*/(adodb.* .zip)$/i', 'adodb/$1', AdodbZip::$zip_url ); //[設置項]Adodb的Zip文件緩存位置
AdodbZip::$entry_dir = 'adodb5';
AdodbZip::$extract_dir = sys_get_temp_dir () . 'adodb/' . AdodbZip::$entry_dir; //[設置項]Adodb程序文件緩存位置
AdodbZip::$server = 'localhost'; //[設置項]服務器
AdodbZip::$user = 'root'; //[設置項]用戶名
AdodbZip::$pwd = ''; //[設置項]密碼
AdodbZip::$db = 'test'; //[設置項]數據庫教程
AdodbZip::$charset = ''; //[設置項]編碼

// 注冊協議
if (! in_array ( 'AdodbZip', stream_get_wrappers () )) {
stream_wrapper_register ( 'AdodbZip', 'AdodbZip' );
}
// 定義常量
if (! defined ( 'ADODB_DIR' )) {
define ( 'ADODB_DIR', 'AdodbZip:/' );
}
// 包含程序
require_once (ADODB_DIR . '/adodb.inc.php');
// $db = AdodbZip::init(NewADOConnection('mysqlt')); // [選擇項]引用即定義$db
// return AdodbZip::init(NewADOConnection('mysqlt')); // [選擇項]引用即返回$db,注意只可引用一次。

/**
* AdodbZip類定義
*/
class AdodbZip {

/**
* Adodb變量
*/
public static $zip_url;
public static $zip_file;
public static $entry_dir;
public static $extract_dir;
public static $server;
public static $user;
public static $pwd;
public static $db;
public static $charset;

/**
* Stream變量
*/
private $handle;
public $context;

/**
* Adodb函數
*/

/**
* init
* @param adodb &$adodb
* @return adodb
*/
public static function init(&$adodb) {
$adodb- Connect ( self::$server, self::$user, self::$pwd, self::$db );
if(self::$charset!=''){
$adodb- Execute('SET NAMES '.self::$charset.';');
}
return $adodb;
}

/**
* Stream函數組
*/

/**
* __construct
*/
public function __construct() {
}

/**
* stream_cast
* @param int $cast_as
* @return resource
*/
public function stream_cast($cast_as) {
return false;
}

/**
* stream_close
*/
public function stream_close() {
fclose ( $this- handle );
}

/**
* stream_eof
* @return bool
*/
public function stream_eof() {
return feof ( $this- handle );
}

/**
* stream_flush
* @return bool
*/
public function stream_flush() {
return fflush ( $this- handle );
}

/**
* stream_lock
* @param mode $options
* @return bool
*/
public function stream_lock($options) {
return flock ( $this- handle, $options );
}

/**
* stream_open
* @param string $path
* @param string $mode
* @param int $options
* @param string &$opend_path
* @return bool
*/
public function stream_open($path, $mode, $options, &$opend_path) {
// 驗證文件地址
if (! preg_match ( '/^.* ://(.*)$/', $path, $matches )) {
return false;
}
$tmp_file = self::$extract_dir . DIRECTORY_SEPARATOR . $matches [1];
$entry_file = self::$entry_dir . '/' . str_replace ( '/', '/', $matches [1] );
$zip_file = self::$zip_file;
// 驗證程序文件
if (! file_exists ( $tmp_file ) || file_exists ( $zip_file ) && filectime ( $tmp_file ) filectime ( $zip_file )) {
// 下載文件
if (! file_exists ( $zip_file )) {
// 目錄處理
if (! is_dir ( dirname ( self::$zip_file ) )) {
if (mkdir ( dirname ( self::$zip_file ), 0777, true ) === false) {
header ( 'Content-type: text/html;charset=utf-8' );
die ( '請創建目錄 ' . $zip_dir );
}
}
// 下載文件
if (! file_exists ( self::$zip_file )) {
$break = true;
do {
$url_arr = parse_url ( self::$zip_url );
$fp = fsockopen ( $url_arr ['host'], isset ( $url_arr ['port'] ) ( int ) $url_arr ['port'] : 80, $errno, $errstr, 10 );
if ($fp === false) {
break;
}
$out = "GET " . $url_arr ['path'] . " HTTP/1.0rnHost: " . $url_arr ['host'] . " rnConnection: closernrn";
fputs ( $fp, $out );
if (feof ( $fp )) {
break;
}
$buffer = fgets ( $fp, 1024 );
if (! preg_match ( '/^HTTP/1.d 200 /i', $buffer )) {
break;
}
$content_length = false;
$content_start = false;
while ( ! feof ( $fp ) ) {
$buffer = fgets ( $fp, 1024 );
if ($buffer === "rn") {
$content_start = true;
break;
}
if (preg_match ( '/^Content-Length:s*(d+)/i', $buffer, $matches )) {
$content_length = ( int ) $matches [1];
}
}
if ($content_length === false || $content_start === false) {
break;
}
$content = stream_get_contents ( $fp );
if ($content === false) {
break;
}
$result = file_put_contents ( self::$zip_file, $content );
unset ( $content );
if ($result === false) {
break;
}
fclose ( $fp );
} while ( $break = false );
if ($break) {
header ( 'Content-type: text/html;charset=utf-8' );
die ( '請下載文件 a href="' . self::$zip_url . '" ' . self::$zip_url . '.zip /a 保存為 ' . self::$zip_file );
}
}
}
// 創建目錄
$tmp_dir = dirname ( $tmp_file );
if (! is_dir ( $tmp_dir )) {
if (mkdir ( $tmp_dir, 0777, true ) === false) {
header ( 'Content-type: text/html;charset=utf-8' );
die ( '請創建目錄 ' . $tmp_dir );
}
}
// 打開壓縮文件
$zip = zip_open ( $zip_file );
if (! is_resource ( $zip )) {
return false;
}
// 尋找解壓文件
do {
$entry = zip_read ( $zip );
if (! is_resource ( $entry )) {
return false;
}
if (zip_entry_name ( $entry ) == $entry_file) {
break;
}
} while ( true );
// 轉存壓縮文件
zip_entry_open ( $zip, $entry );
file_put_contents ( $tmp_file, zip_entry_read ( $entry, zip_entry_filesize ( $entry ) ) );
zip_entry_close ( $entry );
zip_close ( $zip );
}
// 打開文件
$this- handle = fopen ( $tmp_file, $mode );
if (! is_resource ( $this- handle )) {
return false;
}
return true;
}

/**
* stream_read
* @param int $count
* @return string
*/
public function stream_read($count) {
return fread ( $this- handle, $count );
}

/**
* stream_seek
* @param int $offset
* @param int $whence=SEEK_SET
* @return bool
*/
public function stream_seek($offset, $whence = SEEK_SET) {
return fseek ( $this- handle, $offset, $whence );
}

/**
* stream_set_option
* @param int $option
* @param int $arg1
* @param int $arg2
* @return bool
*/
public function stream_set_option($option, $arg1, $arg2) {
return false;
}

/**
* stream_stat
* @return array
*/
public function stream_stat() {
return fstat ( $this- handle );
}

/**
* stream_tell
* @return int
*/
public function stream_tell() {
return ftell ( $this- handle );
}

/**
* stream_write
* @param string $data
* @return int
*/
public function stream_write($data) {
return fwrite ( $this- handle, $data );
}

/**
* url_stat
* @param string $path
* @param int $flag
* @return array
*/
public function url_stat($path, $flag) {
if (! preg_match ( '/^.* ://(.*)$/', $path, $matches )) {
return false;
}
$tmp_file = self::$extract_dir . DIRECTORY_SEPARATOR . $matches [1];
if (file_exists ( $tmp_file )) {
if ($flag & STREAM_URL_STAT_LINK) {
return lstat ( $tmp_file );
} else {
return stat ( $tmp_file );
}
}
if ($flag & STREAM_URL_STAT_QUIET) {
$arr = array ('dev' = 0, 'ino' = 0, 'mode' = 0, 'nlink' = 0, 'uid' = 0, 'gid' = 0, 'rdev' = 0, 'size' = 0, 'atime' = 0, 'mtime' = 0, 'ctime' = 0, 'blksize' = 0, 'blocks' = 0 );
return array_merge ( array_values ( $arr ), $arr );
}
return false;
}
}

使用實例代碼如下:
復制代碼 代碼如下: php
include_once 'AdodbZip.php';
$db = AdodbZip::init(NewADOConnection('mysqlt'));
echo $db- GetOne('SELECT NOW()');

也是兩步.1. 包含AdodbZip.php文件2. AdodbZip::init(...)函數對adodb連接類進行初始化希望本文所述對大家的PHP程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人激情电影一区二区| 92看片淫黄大片看国产片| 成人黄色av网站| 日韩在线欧美在线国产在线| 亚洲精品第一国产综合精品| 国模私拍一区二区三区| 亚洲精品国产成人| 欧美成aaa人片免费看| 91在线视频一区| 日韩在线视频观看正片免费网站| 成人福利网站在线观看| 欧美国产乱视频| 国产精品午夜视频| 热久久视久久精品18亚洲精品| 欧美激情xxxx| 久久精品亚洲精品| 韩剧1988在线观看免费完整版| 91精品久久久久久久久久久久久久| 国产精品电影观看| 国产精品欧美在线| 亚洲精品999| 欧美亚州一区二区三区| 成人精品在线视频| 一区二区三区视频免费在线观看| 欧美精品一区在线播放| 日韩精品一区二区视频| 国色天香2019中文字幕在线观看| 一本色道久久88综合亚洲精品ⅰ| 国模叶桐国产精品一区| 欧美日韩免费区域视频在线观看| 国产精品狠色婷| 日本高清+成人网在线观看| 成人日韩av在线| 欧美性生交大片免网| 久热99视频在线观看| 亚洲自拍偷拍色片视频| 国产精品视频免费在线| 国产精品一区二区女厕厕| 亚洲精品mp4| 国产精品精品视频一区二区三区| 国产视频久久久久| 欧美精品成人在线| 欧美日韩国产二区| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲另类图片色| 欧美色另类天堂2015| 久久久久国产视频| 日韩有码在线观看| 欧美日韩综合视频| 精品久久久久久久中文字幕| 日韩av在线播放资源| 欧美另类极品videosbest最新版本| 日韩电影免费在线观看| 亚洲欧美在线免费| 97精品国产97久久久久久春色| 亚洲精品美女视频| 91极品女神在线| 精品在线小视频| 国产精品久久久久久久久影视| 精品福利樱桃av导航| 91精品国产自产在线| 2019中文字幕在线| 日韩黄色高清视频| 国产成人精品国内自产拍免费看| 国产一区二区黑人欧美xxxx| 日韩中文第一页| 国产精品日本精品| 国产精品成人一区二区| 成人性生交大片免费看小说| 欧美视频中文字幕在线| 精品一区二区三区四区| 色综合男人天堂| 欧美成人免费全部观看天天性色| 国产亚洲一级高清| 日韩综合中文字幕| 欧美成人免费小视频| 青草青草久热精品视频在线网站| 成人免费网站在线观看| 国产精品日韩电影| 日韩美女免费视频| 欧美国产视频日韩| 欧美视频精品一区| 中文字幕久久久av一区| 亚洲欧美日韩国产中文专区| 欧美激情视频网站| 国产精品福利网站| 亚洲国产精品免费| 日韩va亚洲va欧洲va国产| 欧美一区二区三区免费观看| 成人精品视频99在线观看免费| 国产精品成人aaaaa网站| 欧美成人精品在线| 国产欧美一区二区三区四区| 国产日韩欧美另类| 日本精品视频在线观看| 亚洲日本成人网| 久久九九亚洲综合| 欧美日韩免费区域视频在线观看| 欧美视频中文在线看| 精品国产欧美一区二区三区成人| 97福利一区二区| 中文字幕日韩视频| 欧美性猛交xxxx富婆| 国产精品777| 欧美一区亚洲一区| 国产欧美精品一区二区三区介绍| 亚洲自拍偷拍一区| 欧美日韩国产精品一区二区三区四区| 最新的欧美黄色| 日韩精品视频免费在线观看| 欧美成人免费视频| 亚洲电影在线观看| 亚洲天堂免费观看| 一区三区二区视频| 亚洲一区二区在线| 欧美精品18videos性欧美| 亚洲第五色综合网| 好吊成人免视频| 欧洲日韩成人av| 国产精品爽爽ⅴa在线观看| 欧美性videos高清精品| 日韩中文字幕国产| 欧美成人中文字幕在线| 国产午夜精品全部视频在线播放| 视频在线观看99| 成人综合网网址| 国产精品福利网站| 国产精品成人aaaaa网站| 欧美综合国产精品久久丁香| 亚洲电影免费观看高清完整版在线观看| 国产精品日韩欧美综合| 亚洲国产精品久久久久久| 91精品国产综合久久香蕉的用户体验| 久久久在线观看| 亚洲免费视频在线观看| 国产精品久久电影观看| 91成人在线观看国产| 欧美一级免费视频| 亚洲电影成人av99爱色| 国产精品久久久久99| 欧美在线精品免播放器视频| 91av在线免费观看| 美女精品视频一区| 国产一区二区在线播放| 国产成人aa精品一区在线播放| 亚洲精品成人av| 亚洲欧美福利视频| 欧美色videos| 久久综合久久美利坚合众国| 国产精品视频精品视频| 91夜夜未满十八勿入爽爽影院| 亚洲人成网站777色婷婷| 久久久久久久久久久久久久久久久久av| 国产精品丝袜久久久久久不卡| 亚洲va欧美va国产综合久久| 中文字幕精品久久久久| 欧美黑人性生活视频| 都市激情亚洲色图| 91日本在线视频| 日韩在线观看高清| 精品一区二区三区三区| 亚洲成人激情视频| 欧美激情综合亚洲一二区| 欧美性猛交xxxx乱大交|