Subversion Repositories php-qbpwcf

Rev

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

Rev 203 Rev 220
Line 209... Line 209...
209
			
209
			
210
			#設置錯誤訊息
210
			#設置錯誤訊息
211
			$result["error"]=$checkArguments;
211
			$result["error"]=$checkArguments;
212
			
212
			
213
			#回傳結果
213
			#回傳結果
214
			return $result;				
214
			return $result;
215
			
215
			
216
			}#if end
216
			}#if end
217
			
217
			
218
		#如果 $checkArguments["passed"] 等於 "false"
218
		#如果 $checkArguments["passed"] 等於 "false"
219
		if($checkArguments["passed"]=="false"){
219
		if($checkArguments["passed"]=="false"){
Line 223... Line 223...
223
			
223
			
224
			#設置錯誤訊息
224
			#設置錯誤訊息
225
			$result["error"]=$checkArguments;
225
			$result["error"]=$checkArguments;
226
			
226
			
227
			#回傳結果
227
			#回傳結果
228
			return $result;				
228
			return $result;
229
			
229
			
230
			}#if end
230
			}#if end
231
 
231
 
232
		#如果沒有設置 $conf["fileName"]
232
		#如果沒有設置 $conf["fileName"]
233
		if(!isset($conf["fileName"])){
233
		if(!isset($conf["fileName"])){
Line 273... Line 273...
273
				
273
				
274
				}#if end
274
				}#if end
275
			
275
			
276
			#取得產生的檔案名稱
276
			#取得產生的檔案名稱
277
			$conf["fileName"]=$validationCode["randNumberWord"];
277
			$conf["fileName"]=$validationCode["randNumberWord"];
278
							
278
			
279
			}#if end
279
			}#if end
280
 
280
 
281
		#剃除 $conf["fileName"] 開頭的 "./"
281
		#剃除 $conf["fileName"] 開頭的 "./"
282
		#函式說明:
282
		#函式說明:
283
		#移除字串開頭的特定內容
283
		#移除字串開頭的特定內容
Line 319... Line 319...
319
		#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.
319
		#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.
320
		#$result["error"],錯誤訊息陣列.
320
		#$result["error"],錯誤訊息陣列.
321
		#$resutl["function"],當前執行的涵式名稱.
321
		#$resutl["function"],當前執行的涵式名稱.
322
		#必填參數:
322
		#必填參數:
323
		#$conf["path"],要檢查的路徑
323
		#$conf["path"],要檢查的路徑
324
		$conf["fileAccess::validatePath"]["path"]=$conf["fileName"];		
324
		$conf["fileAccess::validatePath"]["path"]=$conf["fileName"];
325
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
325
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
326
		$conf["fileAccess::validatePath"]["fileArgu"]=$conf["fileArgu"];
326
		$conf["fileAccess::validatePath"]["fileArgu"]=$conf["fileArgu"];
327
		#可省略參數:
327
		#可省略參數:
328
		#$conf["haveFileName"],字串,"true"代表有$conf["path"]檔案名稱,"false"代表$conf["path"]為純路徑,預設為"false".
328
		#$conf["haveFileName"],字串,"true"代表有$conf["path"]檔案名稱,"false"代表$conf["path"]為純路徑,預設為"false".
329
		$conf["fileAccess::validatePath"]["haveFileName"]="true";
329
		$conf["fileAccess::validatePath"]["haveFileName"]="true";
Line 347... Line 347...
347
			
347
			
348
			#回傳結果
348
			#回傳結果
349
			return $result;	
349
			return $result;	
350
			
350
			
351
			}#if end
351
			}#if end
352
			
352
		
-
 
353
		#如果要檢查是否有同名的檔案
353
		if($conf["checkRepeat"]=="true"){
354
		if($conf["checkRepeat"]=="true"){
354
		 
355
		 
355
			#函式說明:
356
			#函式說明:
356
			#檢查要建立的檔案路徑是否存在,若不存在則建立新檔案,若檔案已存在則會在原檔名後面加上從(1)開始的編號,再度嘗試建立檔案,以避免資料異常.
357
			#檢查要建立的檔案路徑是否存在,若不存在則建立新檔案,若檔案已存在則會在原檔名後面加上從(1)開始的編號,再度嘗試建立檔案,以避免資料異常.
357
			#回傳的結果:
358
			#回傳的結果:
Line 414... Line 415...
414
				
415
				
415
			#取得建立的檔案資訊
416
			#取得建立的檔案資訊
416
			$result["fileInfo"]["createdFilePathAndName"]=$createFileAfterCheck["createdFilePathAndName"];
417
			$result["fileInfo"]["createdFilePathAndName"]=$createFileAfterCheck["createdFilePathAndName"];
417
			$result["fileInfo"]["createdFilePath"]=$createFileAfterCheck["createdFilePath"];
418
			$result["fileInfo"]["createdFilePath"]=$createFileAfterCheck["createdFilePath"];
418
			$result["fileInfo"]["createdFileName"]=$createFileAfterCheck["createdFileName"];	
419
			$result["fileInfo"]["createdFileName"]=$createFileAfterCheck["createdFileName"];	
419
				
420
			
420
			#取得建立好的檔案路徑與名稱
421
			#取得建立好的檔案路徑與名稱
421
			$conf["fileName"]=$createFileAfterCheck["createdFilePathAndName"];
422
			$conf["fileName"]=$createFileAfterCheck["createdFilePathAndName"];
422
					 
423
			
423
			}#if end			
424
			}#if end
424
 
425
 
425
		#反之沒有要檢查檔案是否存在
426
		#反之沒有要檢查檔案是否存在
426
		else{
427
		else{
427
			
428
			
428
			#取得建立的檔案資訊
429
			#取得建立的檔案資訊
429
			$result["fileInfo"]["createdFilePathAndName"]=$conf["fileName"];
430
			$result["fileInfo"]["createdFilePathAndName"]=$conf["fileName"];
430
			$result["fileInfo"]["createdFilePath"]=$validatePath["path"];
431
			$result["fileInfo"]["createdFilePath"]=$validatePath["path"];
431
			$result["fileInfo"]["createdFileName"]=$validatePath["fileName"];	
432
			$result["fileInfo"]["createdFileName"]=$validatePath["fileName"];
432
			
433
			
433
			}#else end
434
			}#else end
434
 
435
 
435
		#設定要寫入或複寫的檔案
436
		#設定要寫入或複寫的檔案
436
		$fileopenResult=fopen($conf["fileName"],$conf["writeMethod"]);
437
		$fileopenResult=fopen($conf["fileName"],$conf["writeMethod"]);
Line 579... Line 580...
579
			$result["error"]=$fileInfo;
580
			$result["error"]=$fileInfo;
580
			
581
			
581
			#回傳結果
582
			#回傳結果
582
			return $result;
583
			return $result;
583
			
584
			
584
			}#if end	
585
			}#if end
585
			
586
			
586
		#取得檔案的擁有者名稱
587
		#取得檔案的擁有者名稱
587
		$fileOwner=$fileInfo["content"]["ownerName"];
588
		$fileOwner=$fileInfo["content"]["ownerName"];
588
			
589
			
589
		#執行php的帳戶
590
		#執行php的帳戶
590
		$runner=csInformation::runner();	
591
		$runner=csInformation::runner();
591
			
592
			
592
		#如果執行php的使用者等於檔案的擁有者名稱或為root
593
		#如果執行php的使用者等於檔案的擁有者名稱或為root
593
		if($runner===$fileOwner || $runner==="root"){
594
		if($runner===$fileOwner || $runner==="root"){
594
			
595
			
595
			#改變檔案的權限為0770
596
			#改變檔案的權限為0770
Line 709... Line 710...
709
			
710
			
710
			#設置錯誤訊息
711
			#設置錯誤訊息
711
			$result["error"]=$checkArguments;
712
			$result["error"]=$checkArguments;
712
			
713
			
713
			#回傳結果
714
			#回傳結果
714
			return $result;				
715
			return $result;
715
			
716
			
716
			}#if end
717
			}#if end
717
			
718
			
718
		#如果 $checkArguments["passed"] 等於 "false"
719
		#如果 $checkArguments["passed"] 等於 "false"
719
		if($checkArguments["passed"]=="false"){
720
		if($checkArguments["passed"]=="false"){
Line 723... Line 724...
723
			
724
			
724
			#設置錯誤訊息
725
			#設置錯誤訊息
725
			$result["error"]=$checkArguments;
726
			$result["error"]=$checkArguments;
726
			
727
			
727
			#回傳結果
728
			#回傳結果
728
			return $result;				
729
			return $result;
729
			
730
			
730
			}#if end
731
			}#if end
731
	
732
	
732
		#如果沒有設定要個別寫入的內容
733
		#如果沒有設定要個別寫入的內容
733
		if(!isset($conf["inputString"])){
734
		if(!isset($conf["inputString"])){
Line 790... Line 791...
790
				
791
				
791
				#設置錯誤訊息
792
				#設置錯誤訊息
792
				$result["error"]=$writeTextIntoFile;
793
				$result["error"]=$writeTextIntoFile;
793
				
794
				
794
				#回傳結果
795
				#回傳結果
795
				return $result;		
796
				return $result;
796
			
797
			
797
				}#if end
798
				}#if end
798
			
799
			
799
			#設置建立好的檔案資訊
800
			#設置建立好的檔案資訊
800
			$result["content"][]=$writeTextIntoFile["fileInfo"];	
801
			$result["content"][]=$writeTextIntoFile["fileInfo"];
801
				
802
				
802
			}#foreach end
803
			}#foreach end
803
			
804
			
804
			#設置執行正常
805
			#設置執行正常
805
			$result["status"]="true";
806
			$result["status"]="true";
Line 822... Line 823...
822
	#$conf["inputString"],字串陣列,爲要寫入到 $conf["fileName"] 裏面的內容. $conf["inputString"][$i] 代表第 $i+1 行。
823
	#$conf["inputString"],字串陣列,爲要寫入到 $conf["fileName"] 裏面的內容. $conf["inputString"][$i] 代表第 $i+1 行。
823
	$conf["inputString"]=array("");
824
	$conf["inputString"]=array("");
824
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
825
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
825
	$conf["fileArgu"]=__FILE__;
826
	$conf["fileArgu"]=__FILE__;
826
	#可省略參數:
827
	#可省略參數:
827
	#$conf["writeMethod"]="a";#爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入。
828
	#$conf["writeMethod"],字串,爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入。
-
 
829
	#$conf["writeMethod"]="a";
-
 
830
	#$conf["fastWrite"],字串,“true”代表要一次寫入多行內容;預設為"false"代表一次寫入一行,比較安全,但行數一多會需要等待多時.
-
 
831
	#$conf["fastWrite"]="false";
828
	#參考資料:
832
	#參考資料:
829
	#無.
833
	#無.
830
	#備註:
834
	#備註:
831
	#無.
835
	#無.
832
	*/
836
	*/
Line 918... Line 922...
918
		#$result["passed"],參數是否都通過檢查,"true",代表有通過檢查,"false"代表沒有通過檢查。
922
		#$result["passed"],參數是否都通過檢查,"true",代表有通過檢查,"false"代表沒有通過檢查。
919
		#必填參數:
923
		#必填參數:
920
		#$conf["variableCheck.checkSkipableVarType"]["checkedVar"],陣列,要檢查的變數陣列名稱為?
924
		#$conf["variableCheck.checkSkipableVarType"]["checkedVar"],陣列,要檢查的變數陣列名稱為?
921
		$conf["variableCheck.checkSkipableVarType"]["checkedVar"]=$conf;
925
		$conf["variableCheck.checkSkipableVarType"]["checkedVar"]=$conf;
922
		#$conf["variableCheck.checkSkipableVarType"]["sikpableVarNameArray"],字串陣列,要檢查型態是否設定正確的變數名稱陣列.
926
		#$conf["variableCheck.checkSkipableVarType"]["sikpableVarNameArray"],字串陣列,要檢查型態是否設定正確的變數名稱陣列.
923
		$conf["variableCheck.checkSkipableVarType"]["sikpableVarNameArray"]=array("writeMethod");
927
		$conf["variableCheck.checkSkipableVarType"]["sikpableVarNameArray"]=array("writeMethod","fastWrite");
924
		#$conf["variableCheck.checkSkipableVarType"]["skipableVarTypeArray"],字串陣列,要檢查的每個變數,其型態應該要為何?
928
		#$conf["variableCheck.checkSkipableVarType"]["skipableVarTypeArray"],字串陣列,要檢查的每個變數,其型態應該要為何?
925
		$conf["variableCheck.checkSkipableVarType"]["skipableVarTypeArray"]=array("string");
929
		$conf["variableCheck.checkSkipableVarType"]["skipableVarTypeArray"]=array("string","string");
926
		#$argu,要直接存取的陣列變數名稱,變數前面加上「&」,如果要在別的函式裡面使用本函式,請記得將變動過結果($argu)給使用該函式的設定變數(通常是$conf=$argu).
930
		#$argu,要直接存取的陣列變數名稱,變數前面加上「&」,如果要在別的函式裡面使用本函式,請記得將變動過結果($argu)給使用該函式的設定變數(通常是$conf=$argu).
927
		$argu=&$conf;
931
		$argu=&$conf;
928
		#可省略參數:
932
		#可省略參數:
929
		#$conf["variableCheck.checkSkipableVarType"]["skipableVarDefaultValue"],字串陣列,每個不存的變數要初始化為什麼,"null"代表不指定.
933
		#$conf["variableCheck.checkSkipableVarType"]["skipableVarDefaultValue"],字串陣列,每個不存的變數要初始化為什麼,"null"代表不指定.
930
		$conf["variableCheck.checkSkipableVarType"]["skipableVarDefaultValue"]=array("w");
934
		$conf["variableCheck.checkSkipableVarType"]["skipableVarDefaultValue"]=array("w","false");
931
		#無
935
		#無
932
		$checkResult=variableCheck::checkSkipableVarType($conf["variableCheck.checkSkipableVarType"],$argu);
936
		$checkResult=variableCheck::checkSkipableVarType($conf["variableCheck.checkSkipableVarType"],$argu);
933
		unset($conf["variableCheck.checkSkipableVarType"]);
937
		unset($conf["variableCheck.checkSkipableVarType"]);
934
		
938
		
935
		#如果檢查不通過
939
		#如果檢查不通過
Line 958... Line 962...
958
			#回傳結果
962
			#回傳結果
959
			return $result;
963
			return $result;
960
			
964
			
961
			}#if end
965
			}#if end
962
 
966
 
-
 
967
		#如果有設置快速寫入
-
 
968
		if($conf["fastWrite"]==="true"){
-
 
969
		
-
 
970
			#初始化要寫入的字串
-
 
971
			$inputStrAll="";
-
 
972
		
-
 
973
			#有幾行字要寫就執行幾次
-
 
974
			foreach($conf["inputString"] as $inputStr){
-
 
975
 
-
 
976
				#附加 "\r\n"
-
 
977
				$inputStrAll=$inputStrAll.$inputStr.PHP_EOL;
-
 
978
 
-
 
979
				}#foreach end
-
 
980
		
-
 
981
			#函式說明:
-
 
982
			#將字串寫入到檔案
-
 
983
			#回傳結果:
-
 
984
			#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
-
 
985
			#$result["error"],錯誤訊息陣列.
-
 
986
			#必填參數:
-
 
987
			$conf["fileAccess.writeTextIntoFile"]["fileName"]=$conf["fileName"];#爲要編輯的檔案名稱
-
 
988
			$conf["fileAccess.writeTextIntoFile"]["inputString"]=$inputStrAll;#爲要寫入到裏面的內容,若要每筆資料寫入後換行,則可以在字串內容後面加上 \r\n 即可。
-
 
989
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
990
			$conf["fileAccess.writeTextIntoFile"]["fileArgu"]=$conf["fileArgu"];
-
 
991
			#可省略參數:
-
 
992
			$conf["fileAccess.writeTextIntoFile"]["writeMethod"]=$conf["writeMethod"];#爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入。
-
 
993
			#$conf["web"],檔案是否位於網站上"true",若是在檔案系統則為"false",預設為"true".
-
 
994
			$conf["fileAccess.writeTextIntoFile"]["web"]="false";
-
 
995
			$writeStatus=fileAccess::writeTextIntoFile($conf["fileAccess.writeTextIntoFile"]);
-
 
996
			unset($conf["fileAccess.writeTextIntoFile"]);
-
 
997
			
-
 
998
			#如果寫入失敗
-
 
999
			if($writeStatus["status"]=="false"){
-
 
1000
				
-
 
1001
				#設置執行錯誤
-
 
1002
				$result["status"]="false";
-
 
1003
				
-
 
1004
				#設置執行錯誤訊息
-
 
1005
				$result["error"]=$writeStatus;
-
 
1006
				
-
 
1007
				#回傳結果
-
 
1008
				return $result;
-
 
1009
				
-
 
1010
				}#if end
-
 
1011
				
-
 
1012
			#設置執行正常
-
 
1013
			$result["status"]="true";
-
 
1014
			
-
 
1015
			#回傳結果
-
 
1016
			return $result;
-
 
1017
		
-
 
1018
			}#if end
-
 
1019
 
963
		#初始化第一次寫入識別變數
1020
		#初始化第一次寫入識別變數
964
		$firstTimeToWrite="true";
1021
		$firstTimeToWrite="true";
965
			
1022
		
966
		#有幾行字要寫就執行幾次
1023
		#有幾行字要寫就執行幾次
967
		foreach($conf["inputString"] as $inputStr){
1024
		foreach($conf["inputString"] as $inputStr){
968
 
1025
 
969
			#附加 "\r\n"
1026
			#附加 "\r\n"
970
			$inputStr=$inputStr.PHP_EOL;
1027
			$inputStr=$inputStr.PHP_EOL;
971
 
1028
 
972
			#如果是第一次寫入
1029
			#如果是第一次寫入
973
			if($firstTimeToWrite=="true"){
1030
			if($firstTimeToWrite=="true"){
974
				
1031
				
975
				#如果是要重新寫入
1032
				#如果是要重新寫入
976
				if($conf["writeMethod"]=="w"){
1033
				if($conf["writeMethod"]==="w"){
977
					
1034
					
978
					#函式說明:
1035
					#函式說明:
979
					#將字串寫入到檔案
1036
					#將字串寫入到檔案
980
					#回傳結果:
1037
					#回傳結果:
981
					#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
1038
					#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
Line 3432... Line 3489...
3432
	#$conf["allowDelFolder"]="true";
3489
	#$conf["allowDelFolder"]="true";
3433
	#參考資料:
3490
	#參考資料:
3434
	#無.
3491
	#無.
3435
	#備註:
3492
	#備註:
3436
	#無.
3493
	#無.
3437
	*/		
3494
	*/
3438
	public static function delFile(&$conf){
3495
	public static function delFile(&$conf){
3439
 
3496
 
3440
		#初始化要回傳的結果
3497
		#初始化要回傳的結果
3441
		$result=array();
3498
		$result=array();
3442
		
3499
		
Line 3816... Line 3873...
3816
	#無.
3873
	#無.
3817
	#參考資料:
3874
	#參考資料:
3818
	#無.
3875
	#無.
3819
	#備註:
3876
	#備註:
3820
	#無.
3877
	#無.
3821
	*/		
3878
	*/
3822
	public static function delMultiFile(&$conf){
3879
	public static function delMultiFile(&$conf){
3823
	
3880
	
3824
		#初始化要回傳的結果
3881
		#初始化要回傳的結果
3825
		$result=array();
3882
		$result=array();
3826
		
3883
		
Line 5704... Line 5761...
5704
	#$conf["includeWaveEnd"],字串,當參數$conf["commentsArray"]含有星號時是否要包含「~」結尾的檔案.預設為"false",不包含,"true"為要包含.
5761
	#$conf["includeWaveEnd"],字串,當參數$conf["commentsArray"]含有星號時是否要包含「~」結尾的檔案.預設為"false",不包含,"true"為要包含.
5705
	#$conf["includeWaveEnd"]="false";
5762
	#$conf["includeWaveEnd"]="false";
5706
	#參考資料:
5763
	#參考資料:
5707
	#無.
5764
	#無.
5708
	#備註:
5765
	#備註:
5709
	#建議加上 --exclude-backups, --exclude-caches-all 	
5766
	#建議加上 --exclude-backups, --exclude-caches-all 
5710
	*/
5767
	*/
5711
	public static function makeTarXzFile(&$conf){
5768
	public static function makeTarXzFile(&$conf){
5712
		
5769
		
5713
		#初始化要回傳的內容
5770
		#初始化要回傳的內容
5714
		$result=array();
5771
		$result=array();
Line 16005... Line 16062...
16005
			$result["error"]="函數".$result["function"]."需要參數";
16062
			$result["error"]="函數".$result["function"]."需要參數";
16006
			
16063
			
16007
			#回傳結果
16064
			#回傳結果
16008
			return $result;
16065
			return $result;
16009
			
16066
			
16010
			}#if end		
16067
			}#if end
16011
 
16068
 
16012
		#取得參數
16069
		#取得參數
16013
		$result["argu"]=$conf;
16070
		$result["argu"]=$conf;
16014
 
16071
 
16015
		#如果 $conf 不為陣列
16072
		#如果 $conf 不為陣列
Line 16259... Line 16316...
16259
			$result["error"]="函數".$result["function"]."需要參數";
16316
			$result["error"]="函數".$result["function"]."需要參數";
16260
			
16317
			
16261
			#回傳結果
16318
			#回傳結果
16262
			return $result;
16319
			return $result;
16263
			
16320
			
16264
			}#if end		
16321
			}#if end
16265
 
16322
 
16266
		#取得參數
16323
		#取得參數
16267
		$result["argu"]=$conf;
16324
		$result["argu"]=$conf;
16268
 
16325
 
16269
		#如果 $conf 不為陣列
16326
		#如果 $conf 不為陣列
Line 16869... Line 16926...
16869
			$result["error"]="函數".$result["function"]."需要參數";
16926
			$result["error"]="函數".$result["function"]."需要參數";
16870
			
16927
			
16871
			#回傳結果
16928
			#回傳結果
16872
			return $result;
16929
			return $result;
16873
			
16930
			
16874
			}#if end		
16931
			}#if end
16875
 
16932
 
16876
		#取得參數
16933
		#取得參數
16877
		$result["argu"]=$conf;
16934
		$result["argu"]=$conf;
16878
 
16935
 
16879
		#如果 $conf 不為陣列
16936
		#如果 $conf 不為陣列
Line 17109... Line 17166...
17109
	#更新檔案的內容.
17166
	#更新檔案的內容.
17110
	#回傳結果:
17167
	#回傳結果:
17111
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
17168
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
17112
	#$result["error"],錯誤訊息.
17169
	#$result["error"],錯誤訊息.
17113
	#$result["function"],當前執行的函數名稱.
17170
	#$result["function"],當前執行的函數名稱.
17114
	#$result["content"],軟連結的資訊.
17171
	#$result["content"],更新的資訊.
-
 
17172
	#$result["content"][$lineIndex]["ori"],原始 $lineIndex+1 行的內容,若為null則代表不存在.
-
 
17173
	#$result["content"][$lineIndex]["new"],新 $lineIndex+1 行的內容,若為null則代表不存在.
17115
	#必填參數:
17174
	#必填參數:
17116
	#$conf["fileArgu"],字串,變數__FILE__的內容.
17175
	#$conf["fileArgu"],字串,變數__FILE__的內容.
17117
	$conf["fileArgu"]=__FILE__;
17176
	$conf["fileArgu"]=__FILE__;
17118
	#$conf["file"],字串,要更新的檔案位置與名稱.
17177
	#$conf["file"],字串,要更新的檔案位置與名稱.
17119
	$conf["file"]="";
17178
	$conf["file"]="";
Line 17126... Line 17185...
17126
	#$conf["replaceLike"]="false";
17185
	#$conf["replaceLike"]="false";
17127
	#$conf["addToTailWhenNoMatch"],字串,預設為"false"不做事;若為"true",則代表若使用 "replaceWith" 參數但沒有符合條件的內容出現,則新增到檔案的尾端.
17186
	#$conf["addToTailWhenNoMatch"],字串,預設為"false"不做事;若為"true",則代表若使用 "replaceWith" 參數但沒有符合條件的內容出現,則新增到檔案的尾端.
17128
	#$conf["addToTailWhenNoMatch"]="false";
17187
	#$conf["addToTailWhenNoMatch"]="false";
17129
	#$conf["addToTailBeforeThat"],字串,當 "replaceWith" 參數有使用,且 "addToTailWhenNoMatch" 為 "true" 時,若有使用該參數,則會從尾端尋找符合條件的行內容,然後將 沒有符合 "replaceWith" 條件的內容新增在此之前.
17188
	#$conf["addToTailBeforeThat"],字串,當 "replaceWith" 參數有使用,且 "addToTailWhenNoMatch" 為 "true" 時,若有使用該參數,則會從尾端尋找符合條件的行內容,然後將 沒有符合 "replaceWith" 條件的內容新增在此之前.
17130
	#$conf["addToTailBeforeThat"]="?\>";
17189
	#$conf["addToTailBeforeThat"]="?\>";
-
 
17190
	#$conf["replaceSpecifyLine"],字串陣列,將指定的行取代成指定的內容,元素的key為原始檔案的行索引,若key為$i+1,則代表第$i行;元素的數值就為該行的新內容.
-
 
17191
	#$conf["replaceSpecifyLine"]=array();
-
 
17192
	#$conf["outputPath"],字串,檔案要輸出到哪個位置,預設不指定,直接取代原始檔案的內容.
-
 
17193
	#$conf["outputPath"]="";
17131
	#參考資料:
17194
	#參考資料:
17132
	#無.
17195
	#無.
17133
	#備註:
17196
	#備註:
17134
	#無.
17197
	#無.
17135
	*/
17198
	*/
Line 17151... Line 17214...
17151
			$result["error"]="函數".$result["function"]."需要參數";
17214
			$result["error"]="函數".$result["function"]."需要參數";
17152
			
17215
			
17153
			#回傳結果
17216
			#回傳結果
17154
			return $result;
17217
			return $result;
17155
			
17218
			
17156
			}#if end		
17219
			}#if end
17157
 
17220
 
17158
		#取得參數
17221
		#取得參數
17159
		$result["argu"]=$conf;
17222
		$result["argu"]=$conf;
17160
 
17223
 
17161
		#如果 $conf 不為陣列
17224
		#如果 $conf 不為陣列
Line 17177... Line 17240...
17177
 
17240
 
17178
			#回傳結果
17241
			#回傳結果
17179
			return $result;
17242
			return $result;
17180
			
17243
			
17181
			}#if end
17244
			}#if end
17182
				
17245
			
17183
		#檢查參數
17246
		#檢查參數
17184
		#函式說明:
17247
		#函式說明:
17185
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
17248
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
17186
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
17249
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
17187
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
17250
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 17195... Line 17258...
17195
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
17258
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
17196
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
17259
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
17197
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
17260
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
17198
		#必填寫的參數:
17261
		#必填寫的參數:
17199
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
17262
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
17200
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;	
17263
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
17201
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
17264
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
17202
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
17265
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
17203
		#可以省略的參數:
17266
		#可以省略的參數:
17204
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
17267
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
17205
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("fileArgu","file");
17268
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("fileArgu","file");
Line 17210... Line 17273...
17210
		#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
17273
		#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
17211
		#$conf["variableCheck::checkArguments"]["canNotBeEmpty"]=array("file");
17274
		#$conf["variableCheck::checkArguments"]["canNotBeEmpty"]=array("file");
17212
		#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
17275
		#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
17213
		#$conf["canBeEmpty"]=array();
17276
		#$conf["canBeEmpty"]=array();
17214
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
17277
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
17215
		$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("overWriteWith","replaceWith","addToTailWhenNoMatch","addToTailBeforeThat","replaceLike");
17278
		$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("overWriteWith","replaceWith","addToTailWhenNoMatch","addToTailBeforeThat","replaceLike","replaceSpecifyLine","outputPath");
17216
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
17279
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
17217
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("overWriteWith","replaceWith","addToTailWhenNoMatch","addToTailBeforeThat","replaceLike");
17280
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("overWriteWith","replaceWith","addToTailWhenNoMatch","addToTailBeforeThat","replaceLike","replaceSpecifyLine","outputPath");
17218
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
17281
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
17219
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","array","string","string","string");
17282
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","array","string","string","string","array","string");
17220
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
17283
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
17221
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,"false",null,"false");
17284
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,"false",null,"false",null,null);
17222
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
17285
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
17223
		#$conf["disallowAllSkipableVarIsEmpty"]="";
17286
		#$conf["disallowAllSkipableVarIsEmpty"]="";
17224
		#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
17287
		#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
17225
		#$conf["disallowAllSkipableVarIsEmptyArray"]="";
17288
		#$conf["disallowAllSkipableVarIsEmptyArray"]="";
17226
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
17289
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
Line 17318... Line 17381...
17318
			#回傳結果
17381
			#回傳結果
17319
			return $result;
17382
			return $result;
17320
			
17383
			
17321
			}#if end
17384
			}#if end
17322
		
17385
		
-
 
17386
		#預設要寫入的位置為原始檔案
-
 
17387
		$file2write=$conf["file"];
-
 
17388
		
-
 
17389
		#如果有設置 outputPath
-
 
17390
		if(isset($conf["outputPath"])){
-
 
17391
		
-
 
17392
			#寫入檔案的路徑與名稱
-
 
17393
			$file2write=$conf["outputPath"]."/".$conf["file"];
-
 
17394
		
-
 
17395
			}#if end
-
 
17396
		
17323
		#如果有設置 overWriteWith
17397
		#如果有設置 overWriteWith
17324
		if(isset($conf["overWriteWith"])){
17398
		if(isset($conf["overWriteWith"])){
17325
		
17399
		
17326
			#函式說明:
17400
			#函式說明:
17327
			#將多行字串寫入到檔案
17401
			#將多行字串寫入到檔案
Line 17329... Line 17403...
17329
			#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
17403
			#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
17330
			#$result["error"],錯誤訊息陣列.
17404
			#$result["error"],錯誤訊息陣列.
17331
			#$result["function"],當前執行函數的名稱.
17405
			#$result["function"],當前執行函數的名稱.
17332
			#必填參數:
17406
			#必填參數:
17333
			#$conf["fileName"],字串,爲要編輯的檔案名稱
17407
			#$conf["fileName"],字串,爲要編輯的檔案名稱
17334
			$conf["fileAccess::writeMultiLine"]["fileName"]=$conf["file"];
17408
			$conf["fileAccess::writeMultiLine"]["fileName"]=$file2write;
17335
			#$conf["inputString"],字串陣列,爲要寫入到 $conf["fileName"] 裏面的內容. $conf["inputString"][$i] 代表第 $i+1 行。
17409
			#$conf["inputString"],字串陣列,爲要寫入到 $conf["fileName"] 裏面的內容. $conf["inputString"][$i] 代表第 $i+1 行。
17336
			$conf["fileAccess::writeMultiLine"]["inputString"]=$conf["overWriteWith"];
17410
			$conf["fileAccess::writeMultiLine"]["inputString"]=$conf["overWriteWith"];
17337
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
17411
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
17338
			$conf["fileAccess::writeMultiLine"]["fileArgu"]=$conf["fileArgu"];
17412
			$conf["fileAccess::writeMultiLine"]["fileArgu"]=$conf["fileArgu"];
-
 
17413
			#$conf["fastWrite"],字串,“true”代表要一次寫入多行內容;預設為"false"代表一次寫入一行,比較安全,但行數一多會需要等待多時.
-
 
17414
			$conf["fileAccess::writeMultiLine"]["fastWrite"]="true";
17339
			#可省略參數:
17415
			#可省略參數:
17340
			#$conf["writeMethod"]="a";#爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入。
17416
			#$conf["writeMethod"]="a";#爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入。
17341
			#參考資料:
17417
			#參考資料:
17342
			#無.
17418
			#無.
17343
			#備註:
17419
			#備註:
Line 17356... Line 17432...
17356
				
17432
				
17357
				#回傳結果
17433
				#回傳結果
17358
				return $result;
17434
				return $result;
17359
				
17435
				
17360
				}#if end
17436
				}#if end
-
 
17437
			
-
 
17438
			#取得原始檔案的內容
-
 
17439
			#函式說明:
-
 
17440
			#依據行號分隔抓取檔案的內容,結果會回傳一個陣列
-
 
17441
			#回傳的變數說明:
-
 
17442
			#$result["status"],執行是否成功,"true"代表成功;"fasle"代表失敗.
-
 
17443
			#$result["error"],錯誤訊息提示.
-
 
17444
			#$result["warning"],警告訊息.
-
 
17445
			#$result["function"],當前執行的函數名稱.
-
 
17446
			#$result["fileContent"],爲檔案的內容陣列.
-
 
17447
			#$result["lineCount"],爲檔案內容總共的行數.
-
 
17448
			#$result["fullContent"],為檔案的完整內容.
-
 
17449
			#$result["base64data"],為檔案的base64內容.
-
 
17450
			#$result["mimeType"],為檔案的mime type.
-
 
17451
			#必填參數:
-
 
17452
			#$conf["filePositionAndName"],字串,爲檔案的位置以及名稱.
-
 
17453
			$conf["fileAccess::getFileContent"]["filePositionAndName"]=$conf["file"];
-
 
17454
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
17455
			$conf["fileAccess::getFileContent"]["fileArgu"]=$conf["fileArgu"];
-
 
17456
			#可省略參數:
-
 
17457
			#$conf["web"],是要取得網路上的檔案則為"true";反之則為"false".
-
 
17458
			$conf["fileAccess::getFileContent"]["web"]="false";
-
 
17459
			#參考資料:
-
 
17460
			#file(),取得檔案內容的行數.
-
 
17461
			#file=>http:#php.net/manual/en/function.file.php
-
 
17462
			#rtrim(),剔除透過file()取得每行內容結尾的換行符號.
-
 
17463
			#filesize=>http://php.net/manual/en/function.filesize.php
-
 
17464
			#參考資料:
-
 
17465
			#無.
-
 
17466
			#備註:
-
 
17467
			#無.
-
 
17468
			$getFileContent=fileAccess::getFileContent($conf["fileAccess::getFileContent"]);
-
 
17469
			unset($conf["fileAccess::getFileContent"]);
17361
		
17470
		
-
 
17471
			#如果執行失敗
-
 
17472
			if($getFileContent["status"]==="false"){
-
 
17473
				
-
 
17474
				#設置執行失敗
-
 
17475
				$result["status"]="false";
-
 
17476
				
-
 
17477
				#設置執行失敗訊息
-
 
17478
				$result["error"]=$getFileContent;
-
 
17479
				
-
 
17480
				#回傳結果
-
 
17481
				return $result;
-
 
17482
				
-
 
17483
				}#if end
-
 
17484
			
-
 
17485
			#無窮迴圈
-
 
17486
			for($i=0;$i>=0;$i++){
-
 
17487
			
-
 
17488
				#如果有舊或新的行內容存在
-
 
17489
				if( isset($getFileContent["fileContent"][$i]) || isset($conf["overWriteWith"][$i]) ){
-
 
17490
				
-
 
17491
					#初始化暫存舊行內容的變數
-
 
17492
					$oriLine=null;
-
 
17493
					
-
 
17494
					#初始化暫存新行內容的變數
-
 
17495
					$newLine=null;
-
 
17496
					
-
 
17497
					#如果存在原行內容
-
 
17498
					if(isset($getFileContent["fileContent"][$i])){
-
 
17499
					
-
 
17500
						#儲存原行內容
-
 
17501
						$oriLine=$getFileContent["fileContent"][$i];
-
 
17502
					
-
 
17503
						}#if end
-
 
17504
						
-
 
17505
					#如果存在新行內容
-
 
17506
					if(isset($conf["overWriteWith"][$i])){
-
 
17507
					
-
 
17508
						#儲存新行內容
-
 
17509
						$newLine=$conf["overWriteWith"][$i];
-
 
17510
					
-
 
17511
						}#if end
-
 
17512
					
-
 
17513
					#設置更新的資訊
-
 
17514
					$result["content"][$i]=array("ori"=>$oriLine,"new"=>$newLine);
-
 
17515
				
-
 
17516
					}#if end
-
 
17517
					
-
 
17518
				#反之
-
 
17519
				else{
-
 
17520
				
-
 
17521
					#結束迴圈
-
 
17522
					break;
-
 
17523
				
-
 
17524
					}#else end
-
 
17525
				
-
 
17526
				}#for end
-
 
17527
			
17362
			}#if end
17528
			}#if end
17363
			
17529
			
17364
		#如果有設置 "replaceWith"
17530
		#反之如果有設置 "replaceWith"
17365
		if(isset($conf["replaceWith"])){
17531
		else if(isset($conf["replaceWith"])){
17366
		
17532
		
17367
			#取得檔案的內容
17533
			#取得檔案的內容
17368
			#函式說明:
17534
			#函式說明:
17369
			#依據行號分隔抓取檔案的內容,結果會回傳一個陣列
17535
			#依據行號分隔抓取檔案的內容,結果會回傳一個陣列
17370
			#回傳的變數說明:
17536
			#回傳的變數說明:
Line 17475... Line 17641...
17475
						}#if end
17641
						}#if end
17476
						
17642
						
17477
					#如果有找到關鍵字
17643
					#如果有找到關鍵字
17478
					if($findKeyWord["founded"]==="true"){
17644
					if($findKeyWord["founded"]==="true"){
17479
						
17645
						
-
 
17646
						#設置更新的資訊
-
 
17647
						$result["content"][$lineIndex]=array("ori"=>$oriFileContentByLine[$index],"new"=>$newStr);
-
 
17648
						
17480
						#更新該行內容
17649
						#更新該行內容
17481
						$oriFileContentByLine[$index]=$newStr;
17650
						$oriFileContentByLine[$index]=$newStr;
17482
						
17651
						
17483
						#設置有找到符合的關鍵字
17652
						#設置有找到符合的關鍵字
17484
						$foundKeyWord=true;
17653
						$foundKeyWord=true;
Line 17512... Line 17681...
17512
								if($oriFileContentByLine[$i]===$conf["addToTailBeforeThat"]){
17681
								if($oriFileContentByLine[$i]===$conf["addToTailBeforeThat"]){
17513
								
17682
								
17514
									#設置有找到符合的關鍵字
17683
									#設置有找到符合的關鍵字
17515
									$foundKeyWord=true;
17684
									$foundKeyWord=true;
17516
								
17685
								
-
 
17686
									#設置更新的資訊
-
 
17687
									$result["content"][$lineIndex]=array("ori"=>$oriFileContentByLine[$i],"new"=>$line);
-
 
17688
									
17517
									#更新該行內容
17689
									#更新該行內容
17518
									$oriFileContentByLine[$i]=$line;
17690
									$oriFileContentByLine[$i]=$line;
17519
								
17691
								
17520
									#倒敘陣列
17692
									#倒敘陣列
17521
									$linesToAppend=array_reverse($linesToAppend);
17693
									$linesToAppend=array_reverse($linesToAppend);
Line 17524... Line 17696...
17524
									foreach($linesToAppend as $lineToAppend){
17696
									foreach($linesToAppend as $lineToAppend){
17525
									
17697
									
17526
										#append 行內容
17698
										#append 行內容
17527
										$oriFileContentByLine[]=$lineToAppend;
17699
										$oriFileContentByLine[]=$lineToAppend;
17528
										
17700
										
-
 
17701
										#設置更新的資訊
-
 
17702
										$result["content"][count($oriFileContentByLine)-1]=array("ori"=>null,"new"=>$lineToAppend);
-
 
17703
										
17529
										}#foreach end
17704
										}#foreach end
17530
								
17705
								
17531
									}#if end
17706
									}#if end
17532
							
17707
							
17533
								}#for end
17708
								}#for end
Line 17560... Line 17735...
17560
			#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
17735
			#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
17561
			#$result["error"],錯誤訊息陣列.
17736
			#$result["error"],錯誤訊息陣列.
17562
			#$result["function"],當前執行函數的名稱.
17737
			#$result["function"],當前執行函數的名稱.
17563
			#必填參數:
17738
			#必填參數:
17564
			#$conf["fileName"],字串,爲要編輯的檔案名稱
17739
			#$conf["fileName"],字串,爲要編輯的檔案名稱
17565
			$conf["fileAccess::writeMultiLine"]["fileName"]=$conf["file"];
17740
			$conf["fileAccess::writeMultiLine"]["fileName"]=$file2write;
17566
			#$conf["inputString"],字串陣列,爲要寫入到 $conf["fileName"] 裏面的內容. $conf["inputString"][$i] 代表第 $i+1 行。
17741
			#$conf["inputString"],字串陣列,爲要寫入到 $conf["fileName"] 裏面的內容. $conf["inputString"][$i] 代表第 $i+1 行。
17567
			$conf["fileAccess::writeMultiLine"]["inputString"]=$oriFileContentByLine;
17742
			$conf["fileAccess::writeMultiLine"]["inputString"]=$oriFileContentByLine;
17568
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
17743
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
17569
			$conf["fileAccess::writeMultiLine"]["fileArgu"]=$conf["fileArgu"];
17744
			$conf["fileAccess::writeMultiLine"]["fileArgu"]=$conf["fileArgu"];
17570
			#可省略參數:
17745
			#可省略參數:
17571
			#$conf["fileAccess::writeMultiLine"]["writeMethod"]="w";#爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入。
17746
			#$conf["fileAccess::writeMultiLine"]["writeMethod"]="w";#爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入。
-
 
17747
			#$conf["fastWrite"],字串,“true”代表要一次寫入多行內容;預設為"false"代表一次寫入一行,比較安全,但行數一多會需要等待多時.
-
 
17748
			$conf["fileAccess::writeMultiLine"]["fastWrite"]="true";
17572
			#參考資料:
17749
			#參考資料:
17573
			#無.
17750
			#無.
17574
			#備註:
17751
			#備註:
17575
			#無.
17752
			#無.
17576
			$writeMultiLine=fileAccess::writeMultiLine($conf["fileAccess::writeMultiLine"]);
17753
			$writeMultiLine=fileAccess::writeMultiLine($conf["fileAccess::writeMultiLine"]);
Line 17590... Line 17767...
17590
				
17767
				
17591
				}#if end
17768
				}#if end
17592
		
17769
		
17593
			}#if end
17770
			}#if end
17594
	
17771
	
-
 
17772
		#反之如果有設置 replaceSpecifyLine
-
 
17773
		else if(isset($conf["replaceSpecifyLine"])){
-
 
17774
		
-
 
17775
			#讀取原始檔案內容
-
 
17776
			#函式說明:
-
 
17777
			#依據行號分隔抓取檔案的內容,結果會回傳一個陣列
-
 
17778
			#回傳的變數說明:
-
 
17779
			#$result["status"],執行是否成功,"true"代表成功;"fasle"代表失敗.
-
 
17780
			#$result["error"],錯誤訊息提示.
-
 
17781
			#$result["warning"],警告訊息.
-
 
17782
			#$result["function"],當前執行的函數名稱.
-
 
17783
			#$result["fileContent"],爲檔案的內容陣列.
-
 
17784
			#$result["lineCount"],爲檔案內容總共的行數.
-
 
17785
			#$result["fullContent"],為檔案的完整內容.
-
 
17786
			#$result["base64dataOnly"],檔案的base64data.
-
 
17787
			#$result["base64data"],為在網頁上給予src參數的數值.
-
 
17788
			#$result["mimeType"],為檔案的mime type.
-
 
17789
			#必填參數:
-
 
17790
			#$conf["filePositionAndName"],字串,爲檔案的位置以及名稱.
-
 
17791
			$conf["fileAcceess::getFileContent"]["filePositionAndName"]=$conf["file"];
-
 
17792
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
17793
			$conf["fileAcceess::getFileContent"]["fileArgu"]=__FILE__;
-
 
17794
			#可省略參數:
-
 
17795
			#$conf["web"],是要取得網路上的檔案則為"true";反之預設為"false".
-
 
17796
			#$conf["web"]="true";
-
 
17797
			#$conf["createIfnotExist"],字串,預設為"false"代表檔案不存在也不需要建立;反之為"true".
-
 
17798
			#$conf["createIfnotExist"]="false";
-
 
17799
			#$conf["autoDeleteSpaceOnEachLineStart"],字串,預設為"false",不做額外處理;反之為"true"
-
 
17800
			#$conf["autoDeleteSpaceOnEachLineStart"]="false";
-
 
17801
			#參考資料:
-
 
17802
			#file(),取得檔案內容的行數.
-
 
17803
			#file=>http:#php.net/manual/en/function.file.php
-
 
17804
			#rtrim(),剔除透過file()取得每行內容結尾的換行符號.
-
 
17805
			#filesize=>http://php.net/manual/en/function.filesize.php
-
 
17806
			#參考資料:
-
 
17807
			#無.
-
 
17808
			#備註:
-
 
17809
			#無.
-
 
17810
			$getFileContent=fileAccess::getFileContent($conf["fileAcceess::getFileContent"]);
-
 
17811
			unset($conf["fileAcceess::getFileContent"]);
-
 
17812
		
-
 
17813
			#如果執行失敗
-
 
17814
			if($getFileContent["status"]==="false"){
-
 
17815
				
-
 
17816
				#設置執行失敗
-
 
17817
				$result["status"]="false";
-
 
17818
				
-
 
17819
				#設置執行失敗訊息
-
 
17820
				$result["error"]=$getFileContent;
-
 
17821
				
-
 
17822
				#回傳結果
-
 
17823
				return $result;
-
 
17824
				
-
 
17825
				}#if end
-
 
17826
		
-
 
17827
			#針對每個要更新的行
-
 
17828
			foreach($conf["replaceSpecifyLine"] as $lineIndex => $newLineContent){
-
 
17829
			
-
 
17830
				#設置更新的資訊
-
 
17831
				$result["content"][$lineIndex]=array("ori"=>$getFileContent["fileContent"][$lineIndex],"new"=>$newLineContent);
-
 
17832
			
-
 
17833
				#更新行內容
-
 
17834
				$getFileContent["fileContent"][$lineIndex]=$newLineContent;
-
 
17835
			
-
 
17836
				}#foreach end
-
 
17837
				
-
 
17838
			#debug
-
 
17839
			#var_dump(__FILE__,__LINE__,count($getFileContent["fileContent"]));
-
 
17840
				
-
 
17841
			#將變更寫入到檔案裡面
-
 
17842
			#函式說明:
-
 
17843
			#將多行字串寫入到檔案
-
 
17844
			#回傳結果:
-
 
17845
			#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
-
 
17846
			#$result["error"],錯誤訊息陣列.
-
 
17847
			#$result["function"],當前執行函數的名稱.
-
 
17848
			#必填參數:
-
 
17849
			#$conf["fileName"],字串,爲要編輯的檔案名稱
-
 
17850
			$conf["fileAccess::writeMultiLine"]["fileName"]=$file2write;
-
 
17851
			#$conf["inputString"],字串陣列,爲要寫入到 $conf["fileName"] 裏面的內容. $conf["inputString"][$i] 代表第 $i+1 行。
-
 
17852
			$conf["fileAccess::writeMultiLine"]["inputString"]=$getFileContent["fileContent"];
-
 
17853
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
17854
			$conf["fileAccess::writeMultiLine"]["fileArgu"]=__FILE__;
-
 
17855
			#可省略參數:
-
 
17856
			$conf["fileAccess::writeMultiLine"]["writeMethod"]="w";#爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入。
-
 
17857
			#$conf["fastWrite"],字串,“true”代表要一次寫入多行內容;預設為"false"代表一次寫入一行,比較安全,但行數一多會需要等待多時.
-
 
17858
			$conf["fileAccess::writeMultiLine"]["fastWrite"]="true";
-
 
17859
			#參考資料:
-
 
17860
			#無.
-
 
17861
			#備註:
-
 
17862
			#無.
-
 
17863
			$writeMultiLine=fileAccess::writeMultiLine($conf["fileAccess::writeMultiLine"]);
-
 
17864
			unset($conf["fileAccess::writeMultiLine"]);
-
 
17865
			
-
 
17866
			#如果執行失敗
-
 
17867
			if($writeMultiLine["status"]==="false"){
-
 
17868
				
-
 
17869
				#設置執行失敗
-
 
17870
				$result["status"]="false";
-
 
17871
				
-
 
17872
				#設置執行失敗訊息
-
 
17873
				$result["error"]=$writeMultiLine;
-
 
17874
				
-
 
17875
				#回傳結果
-
 
17876
				return $result;
-
 
17877
				
-
 
17878
				}#if end
-
 
17879
				
-
 
17880
			#debug
-
 
17881
			#var_dump(__FILE__,__LINE__,$writeMultiLine);exit(1);
-
 
17882
		
-
 
17883
			}#if end
-
 
17884
		
17595
		#設置執行正常
17885
		#設置執行正常
17596
		$result["status"]="true";
17886
		$result["status"]="true";
17597
	
17887
	
17598
		#回傳結果
17888
		#回傳結果
17599
		return $result;
17889
		return $result;