Subversion Repositories php-qbpwcf

Rev

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

Rev 350 Rev 371
Line 123... Line 123...
123
	#$conf["changeOwner"]="";
123
	#$conf["changeOwner"]="";
124
	#$conf["changePermission"],字串,要將socket檔案的權限設為多少.ex: "0666"(所有帳戶都有存取的權限) 或 "0660"(僅有擁有者與群組帳戶有存取的權限) 或 "0600"(只有擁有者有權限執行).
124
	#$conf["changePermission"],字串,要將socket檔案的權限設為多少.ex: "0666"(所有帳戶都有存取的權限) 或 "0660"(僅有擁有者與群組帳戶有存取的權限) 或 "0600"(只有擁有者有權限執行).
125
	#$conf["changePermission"]="";
125
	#$conf["changePermission"]="";
126
	#$conf["sessionTimeout"],字串,當連線結束後於下一次連線間隔多久就算session timeout,server端會將記錄移除,client端需要重新拿取id,預設為300秒.
126
	#$conf["sessionTimeout"],字串,當連線結束後於下一次連線間隔多久就算session timeout,server端會將記錄移除,client端需要重新拿取id,預設為300秒.
127
	#$conf["sessionTimeout"]="300";
127
	#$conf["sessionTimeout"]="300";
128
	#$conf["addOnProcessFunc"],字串陣列,增加用於處理 json request 的函式名稱,給予的參數為array("request"=>收到的json訊息,"sock"=>用戶的socket,"clientCache"=>給予所有用戶的cache),若收到的不是json而是"quit"則代表用戶要結束連線;若收到的是$shutdownStr則代表要結束本函式.回傳的內容必須為陣列,例如 $res["continue"]="true"代表要繼續執行下一個addOnProcessFunc;"false"代表代表到此為止. $res["content"]="replaced content";代表要將收到的訊息取代成"replaced content". 最少要有回傳 $res["status"]數值"true"代表執行正常;"false"代表執行不正常.
128
	#$conf["addOnProcessFunc"],字串陣列,增加用於處理 json request 的函式名稱,給予的參數為array("id"=>用於識別用戶的id,"request"=>收到的json訊息,"sock"=>用戶的socket,"clientCache"=>給予所有用戶的cache),若收到的不是json而是"quit"則代表用戶要結束連線;若收到的是$shutdownStr則代表要結束本函式.回傳的內容必須為陣列,例如 $res["continue"]="true"代表要繼續執行下一個addOnProcessFunc;"false"代表代表到此為止. $res["content"]="replaced content";代表要將收到的訊息取代成"replaced content". 最少要有回傳 $res["status"]數值"true"代表執行正常;"false"代表執行不正常.
129
	#$conf["addOnProcessFunc"]=array();
129
	#$conf["addOnProcessFunc"]=array();
130
	#$conf["funcToRunWhenIdle"],字串陣列,當沒有事件產生時,要執行的函式名稱,給予參數為array("client"=>所有用戶,"clientCache"=>$result["serverCache"]["clientSide"]["addOnProcessFunc"][$funcToRunWhenIdle],"serverCache"=>$result["serverCache"]["serverSide"]["funcToRunWhenIdle"][$funcToRunWhenIdle]).
130
	#$conf["funcToRunWhenIdle"],字串陣列,當沒有事件產生時,要執行的函式名稱,給予參數為array("client"=>所有用戶,"clientCache"=>$result["serverCache"]["clientSide"]["addOnProcessFunc"][$funcToRunWhenIdle],"serverCache"=>$result["serverCache"]["serverSide"]["funcToRunWhenIdle"][$funcToRunWhenIdle]).
131
	#$conf["funcToRunWhenIdle"]=array();
131
	#$conf["funcToRunWhenIdle"]=array();
132
	#$conf["paramsForFuncToRunWhenIdle"],2維陣列,每個元素代表指定給予funcToRunWhenIdle參數中的指定元素的參數.
132
	#$conf["paramsForFuncToRunWhenIdle"],2維陣列,每個元素代表指定給予funcToRunWhenIdle參數中的指定元素的參數.
133
	#$conf["paramsForFuncToRunWhenIdle"]=array();
133
	#$conf["paramsForFuncToRunWhenIdle"]=array();
Line 640... Line 640...
640
 
640
 
641
					#回傳結果
641
					#回傳結果
642
					return $result;
642
					return $result;
643
 
643
 
644
					}#if end
644
					}#if end
-
 
645
					
-
 
646
				#改變shutdownStr檔案的擁有者
-
 
647
				#函式說明:
-
 
648
				#使用 linux 的 chown 指令來修改目標檔案或目錄的擁有者跟群組擁有者資訊.
-
 
649
				#回傳結果:
-
 
650
				#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
651
				#$result["error"],錯誤訊息.
-
 
652
				#$result["function"],當前執行的函式名稱.
-
 
653
				#$result["cmd"],執行的指令.
-
 
654
				#$result["content"],執行的結果陣列,如果參數 "recursive" 跟 "excludeSelf" 都有設定的話,就會回傳該結果.
-
 
655
				#必填參數:
-
 
656
				#$conf["owner"],字串,要變哪個使用者擁有.
-
 
657
				$conf["cmd::chown"]["owner"]=explode(".",$conf["changeOwner"])[0];
-
 
658
				#$conf["target"],字串,需要變更擁有者、 群組的目標.
-
 
659
				$conf["cmd::chown"]["target"]=$conf["shutdownStrAddr"];
-
 
660
				#可省略參數:
-
 
661
				#$conf["group"],字串,要變成什麼群組擁有,預設跟"owner"一樣.
-
 
662
				$conf["cmd::chown"]["group"]=explode(".",$conf["changeOwner"])[1];
-
 
663
				#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
-
 
664
				#$conf["recursive"]="true";
-
 
665
				#$conf["excludeSelf"],字串,預設為"false"代表不處理;若為"true"則會排除目標自己(資料夾).
-
 
666
				#$conf["excludeSelf"]="true";
-
 
667
				#參考資料:
-
 
668
				#無.
-
 
669
				#備註:
-
 
670
				#無.
-
 
671
				$chown=cmd::chown($conf["cmd::chown"]);
-
 
672
				unset($conf["cmd::chown"]);
-
 
673
 
-
 
674
				#如果改變檔案擁有者限失敗
-
 
675
				if($chown===false){
-
 
676
 
-
 
677
					#設置執行失敗
-
 
678
					$result["status"]="false";
-
 
679
 
-
 
680
					#設置錯誤訊息
-
 
681
					$result["error"][]="改變 ".$conf["sock"]." 檔案的擁有資訊為 ".explode(".",$conf["changeOwner"])[0]." 失敗,通常只有系統帳戶才能變更之.";
-
 
682
 
-
 
683
					#印出錯誤訊息
-
 
684
					echo print_r($result,true);
-
 
685
 
-
 
686
					#回傳結果
-
 
687
					return $result;
-
 
688
 
-
 
689
					}#if end
645
 
690
 
646
				}#if end
691
				}#if end
647
 
692
 
648
			#如果有設置 $conf["changePermission"]
693
			#如果有設置 $conf["changePermission"]
649
			if(isset($conf["changePermission"])){
694
			if(isset($conf["changePermission"])){
Line 664... Line 709...
664
				#可省略參數:
709
				#可省略參數:
665
				#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
710
				#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
666
				#$conf["recursive"]="true";
711
				#$conf["recursive"]="true";
667
				#$conf["excludeSelf"],字串,預設為"false"代表不處理;若為"true"則會排除目標自己(資料夾).
712
				#$conf["excludeSelf"],字串,預設為"false"代表不處理;若為"true"則會排除目標自己(資料夾).
668
				#$conf["excludeSelf"]="true";
713
				#$conf["excludeSelf"]="true";
-
 
714
				#參考資料:
-
 
715
				#無.
-
 
716
				#備註:
-
 
717
				#無.
-
 
718
				$chmod=cmd::chmod($conf["cmd::chmod"]);
-
 
719
				unset($conf["cmd::chmod"]);
-
 
720
 
-
 
721
				#如果變更檔案權限失敗
-
 
722
				if($chmod["status"]==="false"){
-
 
723
 
-
 
724
					#設置執行失敗
-
 
725
					$result["status"]="false";
-
 
726
 
-
 
727
					#設置錯誤訊息
-
 
728
					$result["error"]=$chmod;
-
 
729
 
-
 
730
					#印出錯誤訊息
-
 
731
					echo print_r($result,true);
-
 
732
 
-
 
733
					#回傳結果
-
 
734
					return $result;
-
 
735
 
-
 
736
					}#if end
-
 
737
				
-
 
738
				#改變 shutdownStr 的權限
-
 
739
				#函式說明:
-
 
740
				#使用 linux 的 chmod 指令來修改目標檔案或目錄的權限.
-
 
741
				#回傳結果:
-
 
742
				#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
743
				#$result["error"],錯誤訊息.
-
 
744
				#$result["function"],當前執行的函式名稱.
-
 
745
				#$result["cmd"],執行的指令.
-
 
746
				#$result["content"],執行的結果陣列,如果參數 "recursive" 跟 "excludeSelf" 都有設定的話,就會回傳該結果.
-
 
747
				#必填參數:
-
 
748
				#$conf["mode"],字串,要變成什麼權限.
-
 
749
				$conf["cmd::chmod"]["mode"]=$conf["changePermission"];
-
 
750
				#$conf["target"],字串,需要變更權限的目標.
-
 
751
				$conf["cmd::chmod"]["target"]=$conf["shutdownStrAddr"];
-
 
752
				#可省略參數:
-
 
753
				#$conf["recursive"],字串,"true"代表目標目錄底下的內容都要套用,預設為"false".
-
 
754
				#$conf["recursive"]="true";
-
 
755
				#$conf["excludeSelf"],字串,預設為"false"代表不處理;若為"true"則會排除目標自己(資料夾).
-
 
756
				#$conf["excludeSelf"]="true";
669
				#參考資料:
757
				#參考資料:
670
				#無.
758
				#無.
671
				#備註:
759
				#備註:
672
				#無.
760
				#無.
673
				$chmod=cmd::chmod($conf["cmd::chmod"]);
761
				$chmod=cmd::chmod($conf["cmd::chmod"]);