Subversion Repositories php-qbpwcf

Rev

Rev 83 | Rev 222 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
29 liveuser 1
<?php
2
 
3
/*
4
 
5
        QBPWCF, Quick Build PHP website Component base on Fedora Linux.
6
    Copyright (C) 2014~2025 Min-Jhin,Chen
7
 
8
    This file is part of QBPWCF.
9
 
10
    QBPWCF is free software: you can redistribute it and/or modify
11
    it under the terms of the GNU General Public License as published by
12
    the Free Software Foundation, either version 3 of the License, or
13
    (at your option) any later version.
14
 
15
    QBPWCF is distributed in the hope that it will be useful,
16
    but WITHOUT ANY WARRANTY; without even the implied warranty of
17
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
    GNU General Public License for more details.
19
 
20
    You should have received a copy of the GNU General Public License
21
    along with QBPWCF.  If not, see <http://www.gnu.org/licenses/>.
22
 
23
*/
24
 
25
/*
26
 
27
本程式說明:
28
 
29
依照收到的post變數(ip、設定檔名稱)來進行查詢,並給予回應.
30
 
31
*/
32
 
33
#使用命名空間qbpwcf
34
namespace qbpwcf;
35
 
36
#初始化輸出
37
$output=array();
38
 
39
#取得 lib path
96 liveuser 40
exec("php -f ".escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../../../../usr/bin/libexec/folderOfUsrLib.php"),$output,$status);
29 liveuser 41
 
42
#如果執行失敗
43
if($status!==0){
44
 
45
	#debug
46
	var_dump(__LINE__,$output);
47
 
48
	#結束執行,回傳shell 1.
49
	exit(1);
50
 
51
	}#if end
52
 
53
#儲存lib path
54
$folderOfUsrLib=$output[0];
55
 
56
#初始化輸出
57
$output=array();
58
 
59
#以該檔案的實際位置的 lib path 為 include path 首位
96 liveuser 60
exec("cd ".pathinfo(__FILE__)["dirname"]."/../../../../../usr/".$folderOfUsrLib."/qbpwcf;pwd;",$output,$status);
29 liveuser 61
set_include_path($output[0].PATH_SEPARATOR.get_include_path());
62
 
63
#匯入套件
64
require_once("allInOneForJson.php");
65
 
66
#建議的log位置
67
$logFile=$_SERVER["DOCUMENT_ROOT"].$_SERVER["PHP_SELF"].".log";
68
 
69
#函式說明:
70
#提供post的變數查尋定義檔,給予回應.
71
#回傳結果:
72
#$result["status"],執行是否正常,"true"為正常,"false"為不正常.
73
#$result["error"],錯誤訊息陣列.
74
#$result["function"],當前執行的函數名稱.
47 liveuser 75
#$result["argu"],使用的參數陣列.
29 liveuser 76
#$result["founded"],"true"代表有找到定義,"false"代表沒有找到定義.
47 liveuser 77
#$result["content"],定義對應的內容.
29 liveuser 78
#必填參數:
79
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
80
$conf["fileArgu"]=__FILE__;
47 liveuser 81
#$conf["configFileAddr"],字串/陣列,若為字串則為定義檔位置與名稱;若為陣列則為實際的定義檔案內容(每個元素代表一個設定對應的內容).
29 liveuser 82
$conf["configFileAddr"]=".hta_config:server";
83
#可省略參數:
84
#$conf["web"],是要取得網路上的檔案則為"true";反之則為"false",預設為後者.
85
#$conf["web"]="false";
47 liveuser 86
#參考資料:
87
#無.
29 liveuser 88
#備註:
89
#檔案內容的格式為多行json編碼然後url編碼然後base64編碼後的內容,每行代表一組定義.每組定義的json格式為php多維陣列所組成.
90
$server=config::server($conf);
91
unset($conf);
92
 
93
#如果執行失敗
94
if($server["status"]==="false"){
95
 
96
	#印出結果
97
	echo json_encode($server["error"]);
47 liveuser 98
 
99
	#函式說明:
100
	#撰寫log
101
	#回傳結果:
102
	#$result["status"],狀態,"true"或"false".
103
	#$result["error"],錯誤訊息陣列.
104
	#$result["function"],當前函式的名稱.
105
	#$result["argu"],使用的參數.
106
	#必填參數:
107
	#$conf["path"],字串,log檔案的路徑與名稱.
108
	$conf["path"]=$logFile;
109
	#$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
110
	$conf["content"]=$server;
111
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
112
	$conf["fileArgu"]=__FILE__;
113
	#可省略參數:
114
	#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
115
	#$conf["rewrite"]="false";
116
	#參考資料:
117
	#無.
118
	#備註:
119
	#無.
120
	$record=logs::record($conf);
121
	unset($conf);
122
 
29 liveuser 123
	#結束執行
47 liveuser 124
	exit(1);
29 liveuser 125
 
126
	}#if end
127
 
128
#印出結果
129
echo json_encode($server["content"]);