Subversion Repositories php-qbpwcf

Rev

Rev 3 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3 Rev 226
Line 1... Line 1...
1
<?php
1
<?php
2
 
2
 
3
/*
3
/*
4
 
4
 
5
	QBPWCF, Quick Build PHP website Component base on Fedora Linux.
5
	QBPWCF, Quick Build PHP website Component base on Fedora Linux.
6
    Copyright (C) 2015~2024 Min-Jhin,Chen
6
    Copyright (C) 2014~2025 MIN ZHI, CHEN
7
 
7
 
8
    This file is part of QBPWCF.
8
    This file is part of QBPWCF.
9
 
9
 
10
    QBPWCF is free software: you can redistribute it and/or modify
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
11
    it under the terms of the GNU General Public License as published by
Line 43... Line 43...
43
	#$arguments,陣列,為呼叫方法時所用的參數.
43
	#$arguments,陣列,為呼叫方法時所用的參數.
44
	#參考資料:
44
	#參考資料:
45
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
45
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
46
	*/
46
	*/
47
	public function __call($method,$arguments){
47
	public function __call($method,$arguments){
48
		
48
 
49
		#取得當前執行的函式
49
		#取得當前執行的函式
50
		$result["function"]=__FUNCTION__;
50
		$result["function"]=__FUNCTION__;
51
		
51
 
52
		#設置執行不正常
52
		#設置執行不正常
53
		$result["status"]="false";
53
		$result["status"]="false";
54
		
54
 
55
		#設置執行錯誤
55
		#設置執行錯誤
56
		$result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";
56
		$result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";
57
		
57
 
58
		#設置所丟入的參數
58
		#設置所丟入的參數
59
		$result["error"][]=$arguments;
59
		$result["error"][]=$arguments;
60
		
60
 
61
		#回傳結果
61
		#回傳結果
62
		return $result;
62
		return $result;
63
		
63
 
64
		}#function __call end
64
		}#function __call end
65
		
65
 
66
	/*
66
	/*
67
	#函式說明:
67
	#函式說明:
68
	#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
68
	#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
69
	#回傳結果:
69
	#回傳結果:
70
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
70
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 75... Line 75...
75
	#$arguments,陣列,為呼叫方法時所用的參數.
75
	#$arguments,陣列,為呼叫方法時所用的參數.
76
	#參考資料:
76
	#參考資料:
77
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
77
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
78
	*/
78
	*/
79
	public static function __callStatic($method,$arguments){
79
	public static function __callStatic($method,$arguments){
80
		
80
 
81
		#取得當前執行的函式
81
		#取得當前執行的函式
82
		$result["function"]=__FUNCTION__;
82
		$result["function"]=__FUNCTION__;
83
		
83
 
84
		#設置執行不正常
84
		#設置執行不正常
85
		$result["status"]="false";
85
		$result["status"]="false";
86
		
86
 
87
		#設置執行錯誤
87
		#設置執行錯誤
88
		$result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";
88
		$result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";
89
		
89
 
90
		#設置所丟入的參數
90
		#設置所丟入的參數
91
		$result["error"][]=$arguments;
91
		$result["error"][]=$arguments;
92
		
92
 
93
		#回傳結果
93
		#回傳結果
94
		return $result;
94
		return $result;
95
		
95
 
96
		}#function __callStatic end
96
		}#function __callStatic end
97
 
97
 
98
	/*
98
	/*
99
	#涵式說明:
99
	#涵式說明:
100
	#貼上可以設定網址的qrCode
100
	#貼上可以設定網址的qrCode
Line 115... Line 115...
115
		#儲存當前執行的函數
115
		#儲存當前執行的函數
116
		$result["function"]=__FUNCTION__;
116
		$result["function"]=__FUNCTION__;
117
 
117
 
118
		#如果 $conf 不為陣列
118
		#如果 $conf 不為陣列
119
		if(gettype($conf)!="array"){
119
		if(gettype($conf)!="array"){
120
			
120
 
121
			#設置執行失敗
121
			#設置執行失敗
122
			$result["status"]="false";
122
			$result["status"]="false";
123
			
123
 
124
			#設置執行錯誤訊息
124
			#設置執行錯誤訊息
125
			$result["error"][]="\$conf變數須為陣列形態";
125
			$result["error"][]="\$conf變數須為陣列形態";
126
 
126
 
127
			#如果傳入的參數為 null
127
			#如果傳入的參數為 null
128
			if($conf==null){
128
			if($conf==null){
129
				
129
 
130
				#設置執行錯誤訊息
130
				#設置執行錯誤訊息
131
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
131
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
132
				
132
 
133
				}#if end
133
				}#if end
134
 
134
 
135
			#回傳結果
135
			#回傳結果
136
			return $result;
136
			return $result;
137
	
137
 
138
			}#if end
138
			}#if end
139
	
139
 
140
		#檢查參數
140
		#檢查參數
141
		#函式說明:
141
		#函式說明:
142
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
142
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
143
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
143
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
144
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
144
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 153... Line 153...
153
		#必填寫的參數:
153
		#必填寫的參數:
154
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
154
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
155
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
155
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
156
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
156
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
157
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("webAddress");
157
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("webAddress");
158
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
158
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
159
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
159
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
160
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
160
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
161
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
161
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
162
		#可以省略的參數:
162
		#可以省略的參數:
163
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
163
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
164
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
164
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
165
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
165
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
166
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("customSettings");
166
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("customSettings");
167
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
167
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
168
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array");
168
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array");
169
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
169
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
170
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
170
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
171
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
171
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
172
		#$conf["arrayCountEqualCheck"][]=array();
172
		#$conf["arrayCountEqualCheck"][]=array();
173
		#參考資料來源:
173
		#參考資料來源:
174
		#array_keys=>http://php.net/manual/en/function.array-keys.php
174
		#array_keys=>http://php.net/manual/en/function.array-keys.php
175
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
175
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
176
		unset($conf["variableCheck::checkArguments"]);
176
		unset($conf["variableCheck::checkArguments"]);
177
	
177
 
178
		#如果檢查失敗
178
		#如果檢查失敗
179
		if($checkArguments["status"]=="false"){
179
		if($checkArguments["status"]=="false"){
180
			
180
 
181
			#設置錯誤識別
181
			#設置錯誤識別
182
			$result["status"]="false";
182
			$result["status"]="false";
183
			
183
 
184
			#設置錯誤訊息
184
			#設置錯誤訊息
185
			$result["error"]=$checkArguments;
185
			$result["error"]=$checkArguments;
186
			
186
 
187
			#回傳結果
187
			#回傳結果
188
			return $result;
188
			return $result;
189
			
189
 
190
			}#if end
190
			}#if end
191
	
191
 
192
		#如果檢查不通過
192
		#如果檢查不通過
193
		if($checkArguments["passed"]=="false"){
193
		if($checkArguments["passed"]=="false"){
194
			
194
 
195
			#設置錯誤識別
195
			#設置錯誤識別
196
			$result["status"]="false";
196
			$result["status"]="false";
197
			
197
 
198
			#設置錯誤訊息
198
			#設置錯誤訊息
199
			$result["error"]=$checkArguments;
199
			$result["error"]=$checkArguments;
200
			
200
 
201
			#回傳結果
201
			#回傳結果
202
			return $result;
202
			return $result;
203
			
203
 
204
			}#if end
204
			}#if end
205
 
205
 
206
		#放置qrCode圖片的網址
206
		#放置qrCode圖片的網址
207
		$result["content"]="<img src=\"http://qrcode.kaywa.com/img.php?s=8&d=http%3A%2F%2F".$conf["webAddress"]."\" alt=\"qrcode\"  />";
207
		$result["content"]="<img src=\"http://qrcode.kaywa.com/img.php?s=8&d=http%3A%2F%2F".$conf["webAddress"]."\" alt=\"qrcode\"  />";
208
		
208
 
209
		#設置執行正常
209
		#設置執行正常
210
		$result["status"]="true";
210
		$result["status"]="true";
211
		
211
 
212
		#回傳結果
212
		#回傳結果
213
		return $result;
213
		return $result;
214
		
214
 
215
		}#function show end
215
		}#function show end
216
 
216
 
217
	}#class qrCode end
217
	}#class qrCode end
218
		
218
 
219
?>
219
?>