/** * 返回未安装的APP名 * @author MaWei (http://www.phpyrb.com) * @date 2014-10-8 下午5:42:38 */ function getUninstallAppName() { //检测app安装目录里的APP $file = getDirFile(C('INSTALLAPP_APP')); $file = arrtolower($file); //已安装的APP $is_exsit = $this->getAppList(); $is_exsit = arr2to1($is_exsit, 'app_name'); //取差集 $unexsit = array_diff($file, $is_exsit); return $unexsit; }
function html_file() { $path = './Template/' . C('WEBSTYLE'); $file = getDirFile($path); foreach ($file as $k => $v) { $html_file = basename($v); $html = explode('.', $html_file); if ($html[1] == 'html' || $html[1] == 'htm') { $files[] = $html_file; } } return $files; }
function contentsMain() { global $convertZenToHan, $useEncode, $checkRelay; global $upfileRelay, $uploadFolder, $uploadExtension, $uploadMaxSize, $tmpFileLiveTime; mb_language("Japanese"); $quoteIni = ini_get('magic_quotes_gpc'); $error = array(); $tempData = $this->tempData; //デコード foreach ($_REQUEST as $key => $val) { if ($val == "") { } else { if (isset($checkRelay[$key])) { if ($quoteIni == 1) { foreach ($val as $checkval) { $Data[$key][] = mb_convert_encoding(stripslashes(urldecode($checkval)), "UTF-8", $useEncode); } } else { foreach ($val as $checkval) { $Data[$key][] = mb_convert_encoding(urldecode($checkval), "UTF-8", $useEncode); } } } else { if ($key != "w3a") { $Data[$key] = mb_convert_encoding(stripslashes(urldecode($val)), "UTF-8", $useEncode); } } } } //ファイルアップロードの処理 if (isset($upfileRelay)) { foreach ($upfileRelay as $name => $pairs) { $upErrorFlag = 0; //ファイルアップがあった時 if ($_FILES[$name]['size'] != 0) { $extension = pathinfo($_FILES[$name]["name"], PATHINFO_EXTENSION); //拡張子チェック if (isset($uploadExtension[$name])) { $upErrorFlag = 1; foreach ($uploadExtension[$name] as $key => $value) { if ($key == 0) { continue; } if ($extension == $value) { $upErrorFlag = 0; break; } } if ($upErrorFlag) { $error[] = $uploadExtension[$name][0]; } } //ファイルサイズチェック if (isset($uploadMaxSize[$name])) { if ($_FILES[$name]["size"] / 1024 >= $uploadMaxSize[$name][1]) { $error[] = $uploadMaxSize[$name][0]; $upErrorFlag = 1; } } if ($upErrorFlag) { continue; } $extension = $extension ? '.' . $extension : ''; $upfilename = date("Ymd-His-") . rand(100000, 999999) . $extension; if (@move_uploaded_file($_FILES[$name]["tmp_name"], $_SERVER['DOCUMENT_ROOT'] . $uploadFolder . '/' . $upfilename)) { chmod($_SERVER['DOCUMENT_ROOT'] . $uploadFolder . '/' . $upfilename, 0644); $Data[$name] = $upfilename; } else { $error[] = 'アップロードファイルの一時書き込みができませんでした。管理者までご連絡ください。'; } } else { if ($_FILES[$name]['error'] == 2) { $error[] = $uploadMaxSize[$name][0]; $upErrorFlag = 1; } } } } //全角を半角に変更する。 if ($convertZenToHan) { foreach ($convertZenToHan as $val) { $Data[$val] = mb_convert_kana($_REQUEST[$val], "a", $useEncode); } } //半角を全角に変更する。 if (isset($convertHanToZen)) { foreach ($convertHanToZen as $val) { $Data[$val] = mb_convert_kana($_REQUEST[$val], "K", $useEncode); } } //端末により、GETかPOSTか判定する if (strpos($_SERVER['HTTP_USER_AGENT'], 'J-PHONE/2.0') !== false) { $method = 'get'; } else { // $method='get'; $method = 'post'; } //submitから新規か修正かプレビューかドメイン入力かドメイン入力チェックか送信かを判断 if ($Data['md'] == 'rw') { //修正 $mode = 'rewrite'; } else { if ($Data['md'] == 'pr') { //プレビュー $mode = 'preview'; } else { if ($Data['md'] == 'sd') { //送信 $mode = 'send'; } else { //新規 $mode = 'new'; } } } //プレビュー・送信ならrequestDataが書式通りかをチェック if ($mode == 'preview' || $mode == 'send') { $error = array_merge($this->requestDataCheck($Data), $error); } //データ整形 $tempData += $this->makeTempData($Data, $error, $mode, $method); //モードが「送信」で、かつエラーが無いならメール送信 if ($mode == "send" && count($error) == 0) { if (!$this->mailSend($Data, $tempData)) { $mode = 'sendmiss'; } else { //ファイル削除 if (is_array($upfileRelay)) { foreach ($upfileRelay as $key => $i) { if (isset($Data[$key]) && $Data[$key]) { unlink($_SERVER['DOCUMENT_ROOT'] . $uploadFolder . '/' . $Data[$key]); } } } } } //ドメイン if ($mode == 'preview' || $mode == 'send') { if (($domainCheck = $this->domainInputCheck($Data['domain'])) != false || $Data['domain'] == 'input') { //ドメイン入力 $tempData['{%domainError}'] = $domainCheck; $mode = 'domain'; } } //テンプレファイル決定 上のチェックとsubmitの$modeから $fileName = $this->tempFileName($mode, count($error)); //テンプレート読み込み if (file_exists($fileName)) { ob_start(); include $fileName; $tempHTML = ob_get_contents(); ob_end_clean(); } else { $this->error("fileNotFound"); } //プレビューならtmpフォルダの掃除 if ($mode == 'preview' && $uploadFolder && is_array($upfileRelay)) { $tmpFiles = getDirFile($_SERVER['DOCUMENT_ROOT'] . $uploadFolder); if (is_array($tmpFiles)) { foreach ($tmpFiles as $tmpFile) { if (strpos($tmpFile, 'index.html') !== false) { continue; } if (time() - filemtime($tmpFile) > $tmpFileLiveTime) { unlink($tmpFile); } } } } return array($tempHTML, $tempData); }
<?php /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ header('Content-type: text/html; charset=UTF-8'); include "function.php"; session_start(); ini_set('display_errors', 'On'); error_reporting(E_ALL); //管理员账号 define('ADMIN_ACCOUT', 'admin'); define('ADMIN_PWD', 'admin'); // svn 根目录 ----需要修改 define('SVN_PATH', '/home/svn/'); //define('SVN_PATH', './tmp/'); //项目列表 $projectList = getDirFile(SVN_PATH); //设置当前项目 if (!isset($_SESSION['pro']) || !$_SESSION['pro']) { $_SESSION['pro'] = $projectList[0]; } //用户列表 $userList = getPasswd(); //权限列表 $Authz = getAuthz(); $err = '';
function getDirFile($path, $match = false) { $retArray = array(); //指定したのがファイルだった場合は$matchをチェックし、パスを返して終了。 if (is_file($path)) { if ($match === false || $match === '' || strpos(basename($path), $match) !== false) { return array($path); } } elseif (is_dir($path)) { $basename = basename($path); //カレントディレクトリと上位ディレクトリを指している場合はここで終了。 if ($basename == '.' || $basename == '..') { return false; } //ディレクトリ内のファイル一覧を入手。 $file_list = scandir($path); foreach ($file_list as $file) { //ディレクトリ内の各ファイルを引数にして、自分自身を呼び出す。 if ($getArray = getDirFile($path . '/' . $file, $match)) { $retArray = array_merge($retArray, $getArray); } } return $retArray; } else { return false; } }