/**
* よく使用されるツール
* @author wj
* @date 2015-4-15
*/
class Tool {
/**
* jsポップアップウィンドウとジャンプ
* @param string $ _info*/
static public functionalertLocation($_info, $_url) {
echo "";
exit();
}
/**
* js ポップアップウィンドウ return
* @param string $_info
* @return js*/
static public functionalertBack($_info) {
echo "";
exit();
}
/**
* ページジャンプ
* @param string $url
* @return js*/
static public function headerUrl($url) {
echo " ";
exit();
}
/**
写真をアップロードするためのシステム*/
static public function sysUploadImg($_path) {
echo '';
echo '';
echo '';
echo '';
}
/**
* HTML フィルタリング
* @param array|object $_date
* @return string*/
static public function htmlString($_date) {
if (is_array($_date)) {
foreach ($_date as $_key=>$_value) {
$_string[$_key] = Tool::htmlString($_value); //递归
}
} elseif (is_object($_date)) {
foreach ($_date as $_key=>$_value) {
$ _string->$_key = Tool::htmlString($_value); //递归
}
} else {
$_string = htmlspecialchars($_date);
}
$_string を返します。
}
/**
* データベース入力フィルタリング
* @param string $_data
* @return string
*/
static public function mysqlString($_data) {
$_data =rim($_data);
!GPC を返しますか? addcslashes($_data) : $_data;
}
/**
* クリーンアップセッション
*/
static public function unSession() {
if (session_start()) {
session_destroy();
}
}
/**
*空のかどうかを確認します*/
static function validateEmpty($str, $name) {
if (empty($str)) {
self::alertBack('警告:' .$name . 「空にはできません!」);
}
}
/**
*それらが同じかどうかを確認します
* @param string $ str1
* @param string $ str2*/
static function validateAll($str1, $str2, $alert) {
if ($str1 != $str2) tBack('警告:' .$警告);
}
/**
*/
static function validateId($id) {
if (empty($id) || !is_numeric($id)) self::alertBack('警告:パラメータ错误!' );
}
/**
* フォーマット文字列
* @param 文字列 $str*/
static public function formatStr($str) {
$arr = array(' ', ' ', '&', '@', '#', '%', '''、'"'、'\'、'/'、'.'、','、'$'、'^'、'*'、'('、')'、'['、'] '、'{'、'}'、'|'、'~'、'`'、'?'、'!'、';'、':'、'-'、'_'、'+'、 '=');
foreach ($arr as $v) {
$str = str_replace($v, '', $str);
}
$str; を返します。
}
/**
*使用の使用を使用して使用する場合の時間の使用*/
static public function formatDate($time='default') {
$date = $time == 'default' ? date('Y-m-d H:i:s', time()) : date('Y-m-d H:i:s', $time);
$date を返します。
}
/**
* 実際のIPアドレスを取得
* @return string
*/
static public function realIp() {
static $realip = NULL;
if ($realip !== NULL) $realip を返します。
if(isset($ _ server)){
if(isset($ _ server ['http_x_forwarded_for'])){
$ arr = explode( '、'、$ _server ['http_x_forwarded_for']);
foreach ($arr AS $ip) {
$ip = トリム($ip);
if ($ip != 'unknown') {
$realip = $ip;
休憩。
}
}}} elseif(isset($ _ server ['http_client_ip'])){
$ realip = $ _server ['http_client_ip'];
} else {
if (isset($_SERVER['REMOTE_ADDR'])) {
$realip = $_SERVER['REMOTE_ADDR'];
} else {
$realip = '0.0.0.0';
}
}}} else {
if(getEnv( 'http_x_forwarded_for')){
$ realip = getEnv( 'http_x_forwarded_for');
} elseif (getenv('HTTP_CLIENT_IP')) {
$realip = getenv('HTTP_CLIENT_IP');
} else {
$realip = getenv('REMOTE_ADDR');
}
}
preg_match('/[d.]{7,15}/', $realip, $onlineip);
$realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
$realip を返します。
}
/**
* Smarty テンプレートをロードします
* @param string $html
* @return null;*/
static public function display() {
global $tpl;$html = null;
$htmlArr =explode('/', $_SERVER[SCRIPT_NAME]);
$html = str_ireplace('.php', '.html', $htmlArr[count($htmlArr)-1]);
$dir = ディレクトリ名($_SERVER[SCRIPT_NAME]);
$firstStr = substr($dir, 0, 1);
$endStr = substr($dir, strlen($dir)-1, 1);
if ($firstStr == '/' || $firstStr == '\') $dir = substr($dir, 1);
if ($endStr != '/' || $endStr != '\') $dir = $dir 。 '/';
$tpl->display($dir.$html);
}
/**
* ディレクトリを作成します
* @param string $dir
*/
static public function createDir($dir) {
if (!is_dir($dir)) {
mkdir, 0777);
}
}
/**
* ファイルを作成します (デフォルトは空です)
* @paramknown_type $filename
*/
static public function createFile($filename) {
if (!is_file($filename)) touch($filename);
}
/**
* 変数を正しく取得する use using using using*/
static public function getData($param, $type='post') {
$type = strto lower($type);
if ($type=='post') {
return Tool::mysqlString(trim($_POST[$param]));
} elseif ($type=='get') {
return Tool::mysqlString(trim($_GET[$param]));
}
}
/**
* ファイルを削除します
* @param string $filename
*/
static public function delFile($filename) {
if (file_exists($filename)) unlink($filename);
}
/**
* ディレクトリを削除します
* @param string $path
*/
static public function delDir($path) {
if (is_dir($path)) rmdir($path);
}
/**
* ディレクトリとディレクトリ内のすべてのファイルを削除します
* @param string $dir
($dir )) {
$dh=opendir($dir)."/".$file ;その他{
}
closeir($dh); #&*/
static public function validateLogin() {
if ($_SESSION[' admin']['user'])) header('Location:/admin /');
}
/**
* ログインを確認してください
*/
static public function addMark($file_path) {
if (file_exists($file_path) && file_exists(MARK)) {
$ext_name = strto lower(sub str( $ file_path、strrpos($ file_path、 ')、strlen($ file_path));case '.gif':st_im = imagecreatefrompng($ file_path);座標位置に応じたトゥルーカラー画像。 case '.jpg':
imagejpeg ($ nimage、$ file_path); imagedestroy($dst_im);
imagedestroy($src_im);
unset($imginfo);
unset($src_imginfo);
//移動生成後の画像
@move_uploaded_file($file_path, ROOT_PATH.UPDIR . $file_path);
}
}
/**
* * 中国語インターセプト 2、シングルバイト インターセプト モード
* @access public
* * @param string $str インターセプトする文字列
* @param int $slen インターセプトの長さ
* * @param int $startdd開始マーク
* @return 文字列
*/
static public function cn_substr($str, $slen, $startdd=0){
$cfg_soft_lang = PAGECHARSET;
if($cfg_soft_lang=='utf-8') {
return self::cn_substr_utf8($str, $slen, $startdd);
}
$restr = '';
$c = '';
$str_len = strlen($str);
if($str_len < $startdd+1) {
return '';
}
if($str_len < $startdd + $slen || $slen==0) {
$slen = $str_len - $startdd;
}
$enddd = $startdd + $slen - 1;
for($i=0;$i<$str_len;$i++) {
if($startdd==0) {
$restr .= $c;
} elseif($i > $startdd) {
$restr .= $c; if(ord($ str [$ i])&gt; 0x80){
if($ str_len&gt; $ i+1){
$ c = $ str [$ i]。$ str [$ i+1] ;
}
$i++;
} else {
$c = $str[$i]; if($ i&gt; = $ enddd){
if(strlen($ strem)+strlen($ c)&gt; $ slen){
break;
} else {
$restr .= $c;
休憩。
}
{
$start+1) {
// mysql4 と互換性を持たせるために、.1 よりも下のバージョンはデータベース varchar と一致します。 for($ i = 0; isset($ ar [0] [$ i]); $ i ++){
if(strlen($ tstr)&lt; $ start){
{
}
($ image_id){
$ db_name = PREFIX . 'images i'; $m = new Model(); "i.path as b, i.small_img as $v"); self::delFile(ROOT_PATH . $v['p']);
@self::delFile(ROOT_PATH . $v['b']);
@self::delFile(ROOT_PATH . $v['s'] ); "id={$image_id}"); static public function raiseImage($im, $maxwidth, $maxheight, $name, $filetype) {
$pic_width = imagex($im);
$pic_height = imagey($im);
if(($maxwidth && $pic_width > $maxwidth) || ($maxheight && $pic_height > $maxheight)) {
if($maxwidth && $pic_width>$maxwidth) {
$widthratio = $最大幅/$ pic_width;
$resizewidth_tag = true;
}
if($maxheight && $pic_height>$maxheight) {
$heightratio = $maxheight/$pic_height;
$resizeheight_tag = true;
}
if($resizewidth_tag && $resizeheight_tag) {
if($widthratio $ratio = $widthratio;
else
$ratio = $heightratio;
}
if($resizewidth_tag && !$resizeheight_tag)
$ratio = $widthratio;
if($resizeheight_tag && !$resizewidth_tag)
$ratio = $heightratio;
$newwidth = $pic_width * $ratio;
$newheight = $pic_height * $ratio;
if(function_exists("imagecopyresampled")) {
$newim = imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);
} else {
$newim = imagecreate($newwidth,$newheight);
imagecopyresize($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);
}
$name = $name.$filetype;
imagejpeg($newim,$name);
imagedestroy($newim);
} else {
$name = $name.$filetype;
imagejpeg($im,$name);
}
}
/**
* ファイルをダウンロードします
* @param string $file_path 絶対パス
*/
static public function downFile($file_path) {
// ファイルが存在するかどうかを確認します
$file_path = iconv('utf-8', 'gb2312', $file_path); // using using using - ('ファイルが存在しません!'); _名前 = Basename ($ file_path); // ファイル名を取得します
$ file_size = filesize ($ file_path) // ファイルサイズを取得します ,, 'r'); // ファイルを読み取り専用ヘッダーとして開きます。 application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: {$file_size}");
header("Content-Disposition:attachment;filename={ $ file_name} ");
$ buffer = 1024;
$ file_count = 0; //ファイルを閉じる
}
}