Subversion Repositories php-qbpwcf

Rev

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

Rev 42 Rev 218
Line 1472... Line 1472...
1472
			
1472
			
1473
		}#function stringIntToInt end
1473
		}#function stringIntToInt end
1474
 
1474
 
1475
	/*
1475
	/*
1476
	#函式說明:
1476
	#函式說明:
-
 
1477
	#將字串中的特定內容取代.
-
 
1478
	#回傳結果:
-
 
1479
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
1480
	#$result["function"],當前執行的函數.
-
 
1481
	#$result["content"],爲處理好的字串.
-
 
1482
	#$result["error"],錯誤訊息陣列.
-
 
1483
	#$result["argu"],使用的參數. 
-
 
1484
	#必填參數:
-
 
1485
	#$conf["stringIn"],字串,爲要處理的字串
-
 
1486
	$conf["stringIn"]="";
-
 
1487
	#$conf["selectedCharacter"],字串,爲被選擇要處理的字串/字元,\n」代表換行,「\t」代表tab鍵的間隔.
-
 
1488
	$conf["selectedCharacter"]="";
-
 
1489
	#$conf["changeTo"],字串,爲被選擇的字元要換成什麼字串/字元.
-
 
1490
	$conf["changeTo"]="";
-
 
1491
	#參考資料:
-
 
1492
	#無.
-
 
1493
	#備註:
-
 
1494
	#無.
-
 
1495
	*/
-
 
1496
	public static function replaceOnce(&$conf){
-
 
1497
	
-
 
1498
		#初始化要回傳的結果
-
 
1499
		$result=array();
-
 
1500
		
-
 
1501
		#設置當前執行函數
-
 
1502
		$result["function"]=__FUNCTION__;
-
 
1503
		
-
 
1504
		#初始化要回傳的主要內容
-
 
1505
		$result["content"]="";
-
 
1506
 
-
 
1507
		#如果 $conf 不為陣列
-
 
1508
		if(gettype($conf)!="array"){
-
 
1509
			
-
 
1510
			#設置執行失敗
-
 
1511
			$result["status"]="false";
-
 
1512
			
-
 
1513
			#設置執行錯誤訊息
-
 
1514
			$result["error"][]="\$conf變數須為陣列形態";
-
 
1515
 
-
 
1516
			#如果傳入的參數為 null
-
 
1517
			if($conf==null){
-
 
1518
				
-
 
1519
				#設置執行錯誤訊息
-
 
1520
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
-
 
1521
				
-
 
1522
				}#if end
-
 
1523
 
-
 
1524
			#回傳結果
-
 
1525
			return $result;
-
 
1526
			
-
 
1527
			}#if end
-
 
1528
 
-
 
1529
		#取得參數 
-
 
1530
		$result["argu"]=$conf;
-
 
1531
 
-
 
1532
		#函式說明:
-
 
1533
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
-
 
1534
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
1535
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
-
 
1536
		#$result["function"],當前執行的函式名稱.
-
 
1537
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
-
 
1538
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
-
 
1539
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
-
 
1540
		#$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
-
 
1541
		#必填寫的參數:
-
 
1542
		#$conf["varInput"],陣列變數,要檢查的陣列變數.
-
 
1543
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
-
 
1544
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
-
 
1545
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn","selectedCharacter","changeTo");
-
 
1546
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
-
 
1547
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
-
 
1548
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
-
 
1549
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
-
 
1550
		#可以省略的參數:
-
 
1551
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
-
 
1552
		$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
-
 
1553
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些變數不可以為空字串或集合.
-
 
1554
		#$conf["variableCheck.checkArguments"]["skipableVariableCanNotBeEmpty"]=array("");
-
 
1555
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
-
 
1556
		#$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("selectedCharacter","changeTo");
-
 
1557
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
-
 
1558
		#$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array");
-
 
1559
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
-
 
1560
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(array("<",">","=","//","'","$","%","&","|","/*","*/","#","\""),null);
-
 
1561
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
-
 
1562
		unset($conf["variableCheck.checkArguments"]);
-
 
1563
		
-
 
1564
		#如果檢查失敗
-
 
1565
		if($checkResult["status"]=="false"){
-
 
1566
			
-
 
1567
			#設置執行失敗
-
 
1568
			$result["status"]="false";
-
 
1569
			
-
 
1570
			#設置錯誤訊息
-
 
1571
			$result["error"]=$checkResult;
-
 
1572
			
-
 
1573
			#回傳結果
-
 
1574
			return $result;
-
 
1575
			
-
 
1576
			}#if end
-
 
1577
			
-
 
1578
		#如果檢查不通過
-
 
1579
		if($checkResult["passed"]=="false"){
-
 
1580
			
-
 
1581
			#設置執行失敗
-
 
1582
			$result["status"]="false";
-
 
1583
			
-
 
1584
			#設置錯誤訊息
-
 
1585
			$result["error"]=$checkResult;
-
 
1586
			
-
 
1587
			#回傳結果
-
 
1588
			return $result;
-
 
1589
			
-
 
1590
			}#if end
-
 
1591
	
-
 
1592
		#只取代一次
-
 
1593
		$one=1;
-
 
1594
	
-
 
1595
		#取得進行替換後的結果
-
 
1596
		$result["content"]=str_replace($conf["selectedCharacter"],$conf["changeTo"],$conf["stringIn"],$one);
-
 
1597
 
-
 
1598
		#檢查變數內容
-
 
1599
		$result["status"]="true";
-
 
1600
		
-
 
1601
		#回傳經過整理的字串
-
 
1602
		return $result;
-
 
1603
	
-
 
1604
		}#function replaceOnce end
-
 
1605
 
-
 
1606
	/*
-
 
1607
	#函式說明:
1477
	#處理字串避免網頁出錯
1608
	#處理字串避免網頁出錯
1478
	#回傳結果:
1609
	#回傳結果:
1479
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1610
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1480
	#$result["function"],當前執行的函數.
1611
	#$result["function"],當前執行的函數.
1481
	#$result["content"],爲處理好的字串.
1612
	#$result["content"],爲處理好的字串.
Line 1498... Line 1629...
1498
 
1629
 
1499
		#初始化要回傳的結果
1630
		#初始化要回傳的結果
1500
		$result=array();
1631
		$result=array();
1501
			
1632
			
1502
		#設置當前執行函數
1633
		#設置當前執行函數
1503
		$result["function"]=__FUNCTION__;	
1634
		$result["function"]=__FUNCTION__;
1504
			
1635
			
1505
		#初始化要回傳的主要內容
1636
		#初始化要回傳的主要內容
1506
		$result["content"]="";
1637
		$result["content"]="";
1507
 
1638
 
1508
		#如果 $conf 不為陣列
1639
		#如果 $conf 不為陣列
Line 1526... Line 1657...
1526
			return $result;
1657
			return $result;
1527
			
1658
			
1528
			}#if end
1659
			}#if end
1529
 
1660
 
1530
		#取得參數 
1661
		#取得參數 
1531
		$result["argu"]=$conf;		
1662
		$result["argu"]=$conf;
1532
 
1663
 
1533
		#函式說明:
1664
		#函式說明:
1534
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1665
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1535
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1666
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1536
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1667
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 1546... Line 1677...
1546
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1677
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1547
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
1678
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
1548
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string");
1679
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string");
1549
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1680
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1550
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
1681
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
1551
		#可以省略的參數:
1682
		#可以省略的參數:
1552
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
1683
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
1553
		$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
1684
		$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
1554
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些變數不可以為空字串或集合.
1685
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些變數不可以為空字串或集合.
1555
		$conf["variableCheck.checkArguments"]["skipableVariableCanNotBeEmpty"]=array("selectedCharacter");
1686
		$conf["variableCheck.checkArguments"]["skipableVariableCanNotBeEmpty"]=array("selectedCharacter");
1556
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1687
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
Line 1586... Line 1717...
1586
			$result["error"]=$checkResult;
1717
			$result["error"]=$checkResult;
1587
			
1718
			
1588
			#回傳結果
1719
			#回傳結果
1589
			return $result;
1720
			return $result;
1590
			
1721
			
1591
			}#if end		
1722
			}#if end
1592
 
1723
 
1593
		#取得有幾種字串要處理
1724
		#取得有幾種字串要處理
1594
		$num=count($conf["selectedCharacter"]);
1725
		$num=count($conf["selectedCharacter"]);
1595
 
1726
 
1596
		#如果 $conf["changeTo"] 有設定
1727
		#如果 $conf["changeTo"] 有設定
Line 2559... Line 2690...
2559
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
2690
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
2560
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
2691
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
2561
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2692
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2562
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2693
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2563
		#可以省略的參數:
2694
		#可以省略的參數:
2564
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
2695
		#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
2565
		#$conf["canBeEmptyString"]="false";
2696
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
2566
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2697
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2567
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("recursive","lastResult");
2698
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("recursive","lastResult");
2568
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
2699
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
2569
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","array");
2700
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","array");
2570
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2701
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
Line 2579... Line 2710...
2579
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2710
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2580
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2711
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2581
		unset($conf["variableCheck::checkArguments"]);
2712
		unset($conf["variableCheck::checkArguments"]);
2582
 
2713
 
2583
		#如果檢查有誤
2714
		#如果檢查有誤
2584
		if($checkResult["status"]=="false"){
2715
		if($checkResult["status"]==="false"){
2585
			
2716
			
2586
			#設置錯誤識別
2717
			#設置錯誤識別
2587
			$result["status"]="false";
2718
			$result["status"]="false";
2588
			
2719
			
2589
			#設置錯誤訊息
2720
			#設置錯誤訊息
Line 2593... Line 2724...
2593
			return $result;
2724
			return $result;
2594
			
2725
			
2595
			}#if end
2726
			}#if end
2596
		
2727
		
2597
		#如果檢查不通過
2728
		#如果檢查不通過
2598
		if($checkResult["passed"]=="false"){
2729
		if($checkResult["passed"]==="false"){
2599
			
2730
			
2600
			#設置錯誤識別
2731
			#設置錯誤識別
2601
			$result["status"]="false";
2732
			$result["status"]="false";
2602
			
2733
			
2603
			#設置錯誤訊息
2734
			#設置錯誤訊息
Line 2616... Line 2747...
2616
			
2747
			
2617
				#回傳上次結果
2748
				#回傳上次結果
2618
				return $conf["lastResult"];
2749
				return $conf["lastResult"];
2619
			
2750
			
2620
				}#if end
2751
				}#if end
-
 
2752
				
-
 
2753
			#如果關鍵字也是空字串
-
 
2754
			if($conf["keyWord"]===""){
-
 
2755
			
-
 
2756
				#設置有找到關鍵字
-
 
2757
				$result["founded"]="true";
-
 
2758
				
-
 
2759
				#初始化儲存原始的字串
-
 
2760
				$result["oriStr"]=$conf["stringIn"];
-
 
2761
				
-
 
2762
				#結果跟原始字串一樣
-
 
2763
				$result["content"]=$result["oriStr"];
-
 
2764
				
-
 
2765
				#設置執行正常識別
-
 
2766
				$result["status"]="true";
-
 
2767
				
-
 
2768
				#回傳結果
-
 
2769
				return $result;
-
 
2770
			
-
 
2771
				}#if end
2621
		
2772
		
2622
			#設置錯誤識別
2773
			#設置執行正常識別
2623
			$result["status"]="true";
2774
			$result["status"]="true";
2624
			
2775
			
2625
			#設置警告訊息
2776
			#設置警告訊息
2626
			$result["warning"][]="要處理的參數 stringIn 為空,且沒有參數 lastResult 存在";
2777
			$result["warning"][]="要處理的參數 stringIn 為空,且沒有參數 lastResult 存在";
2627
			
2778
			
Line 2636... Line 2787...
2636
			
2787
			
2637
			#回傳結果
2788
			#回傳結果
2638
			return $result;
2789
			return $result;
2639
			
2790
			
2640
			}#if end
2791
			}#if end
2641
			
-
 
2642
		#將要處理的字串用unicode編碼來一個個字分割.
-
 
2643
		#函式說明:
-
 
2644
		#unicode的字串分割,比str_split的支援度高.
-
 
2645
		#回傳結果:
-
 
2646
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
2647
		#$result["error"],錯誤訊息陣列.	
-
 
2648
		#$result["function"],當前執行的函數名稱.
-
 
2649
		#$result["content"],分割好的內容.
-
 
2650
		#$result["length"],unicode字串的長度.
-
 
2651
		#必填參數:
-
 
2652
		#$conf["str"],字串",要分割的字串.
-
 
2653
		$conf["stringProcess::str_split_unicode"]["str"]=$conf["stringIn"];
-
 
2654
		#可省略參數:
-
 
2655
		#$conf["length"],整數,分割的長度.
-
 
2656
		#$conf["length"]=1;
-
 
2657
		#參考資料:
-
 
2658
		#http://php.net/manual/en/function.str-split.php
-
 
2659
		$str_split_unicode=self::str_split_unicode($conf["stringProcess::str_split_unicode"]);
-
 
2660
		unset($conf["stringProcess::str_split_unicode"]);
-
 
2661
		
2792
		
2662
		#如果分割字串失敗
2793
		#如果要判斷的輸入為空字串
2663
		if($str_split_unicode["status"]==="false"){
2794
		if($conf["stringIn"]===""){
2664
			
2795
		
2665
			#設置錯誤識別
2796
			#初始化分割好內容
2666
			$result["status"]="false";
2797
			$spiltedStringIn=array();
-
 
2798
		
-
 
2799
			}#if end
2667
			
2800
			
-
 
2801
		#反之
-
 
2802
		else{
-
 
2803
		
-
 
2804
			#將要處理的字串用unicode編碼來一個個字分割.
2668
			#設置錯誤訊息
2805
			#函式說明:
-
 
2806
			#unicode的字串分割,比str_split的支援度高.
-
 
2807
			#回傳結果:
-
 
2808
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2669
			$result["error"]=$str_split_unicode;
2809
			#$result["error"],錯誤訊息陣列.	
-
 
2810
			#$result["function"],當前執行的函數名稱.
-
 
2811
			#$result["content"],分割好的內容.
-
 
2812
			#$result["length"],unicode字串的長度.
-
 
2813
			#必填參數:
-
 
2814
			#$conf["str"],字串",要分割的字串.
-
 
2815
			$conf["stringProcess::str_split_unicode"]["str"]=$conf["stringIn"];
-
 
2816
			#可省略參數:
-
 
2817
			#$conf["length"],整數,分割的長度.
-
 
2818
			#$conf["length"]=1;
-
 
2819
			#參考資料:
-
 
2820
			#http://php.net/manual/en/function.str-split.php
-
 
2821
			$str_split_unicode=self::str_split_unicode($conf["stringProcess::str_split_unicode"]);
-
 
2822
			unset($conf["stringProcess::str_split_unicode"]);
2670
			
2823
			
-
 
2824
			#如果分割字串失敗
-
 
2825
			if($str_split_unicode["status"]==="false"){
-
 
2826
				
-
 
2827
				#設置錯誤識別
-
 
2828
				$result["status"]="false";
-
 
2829
				
-
 
2830
				#設置錯誤訊息
-
 
2831
				$result["error"]=$str_split_unicode;
-
 
2832
				
2671
			#回傳結果
2833
				#回傳結果
2672
			return $result;
2834
				return $result;
-
 
2835
				
-
 
2836
				}#if end
2673
			
2837
			
2674
			}#if end
2838
			#取得分割好的字串
-
 
2839
			$spiltedStringIn=$str_split_unicode["content"];
2675
		
2840
		
2676
		#取得分割好的字串
2841
			}#else 
2677
		$spiltedStringIn=$str_split_unicode["content"];
-
 
2678
		
2842
		
2679
		##將要處理的關鍵字用unicode編碼來一個個字分割.
-
 
2680
		#函式說明:
-
 
2681
		#unicode的字串分割,比str_split的支援度高.
-
 
2682
		#回傳結果:
-
 
2683
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
2684
		#$result["error"],錯誤訊息陣列.	
-
 
2685
		#$result["function"],當前執行的函數名稱.
-
 
2686
		#$result["content"],分割好的內容.
-
 
2687
		#$result["length"],unicode字串的長度.
-
 
2688
		#必填參數:
-
 
2689
		#$conf["str"],字串",要分割的字串.
2843
		#如果關鍵字為空字串
2690
		$conf["stringProcess::str_split_unicode"]["str"]=$conf["keyWord"];
-
 
2691
		#可省略參數:
-
 
2692
		#$conf["length"],整數,分割的長度.
-
 
2693
		#$conf["length"]=1;
2844
		if($conf["keyWord"]===""){
2694
		#參考資料:
-
 
2695
		#http://php.net/manual/en/function.str-split.php
-
 
2696
		$str_split_unicode=self::str_split_unicode($conf["stringProcess::str_split_unicode"]);
-
 
2697
		unset($conf["stringProcess::str_split_unicode"]);
-
 
2698
		
2845
		
2699
		#如果分割字串失敗
2846
			#初始化分割好內容
2700
		if($str_split_unicode["status"]==="false"){
2847
			$spiltedKeyWord=array();
2701
			
2848
		
2702
			#設置錯誤識別
2849
			}#if end
-
 
2850
		
-
 
2851
		#反之
2703
			$result["status"]="false";
2852
		else{
2704
			
2853
		
-
 
2854
			#將要處理的關鍵字用unicode編碼來一個個字分割.
2705
			#設置錯誤訊息
2855
			#函式說明:
-
 
2856
			#unicode的字串分割,比str_split的支援度高.
-
 
2857
			#回傳結果:
-
 
2858
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2706
			$result["error"]=$str_split_unicode;
2859
			#$result["error"],錯誤訊息陣列.	
-
 
2860
			#$result["function"],當前執行的函數名稱.
-
 
2861
			#$result["content"],分割好的內容.
-
 
2862
			#$result["length"],unicode字串的長度.
-
 
2863
			#必填參數:
-
 
2864
			#$conf["str"],字串",要分割的字串.
-
 
2865
			$conf["stringProcess::str_split_unicode"]["str"]=$conf["keyWord"];
-
 
2866
			#可省略參數:
-
 
2867
			#$conf["length"],整數,分割的長度.
-
 
2868
			#$conf["length"]=1;
-
 
2869
			#參考資料:
-
 
2870
			#http://php.net/manual/en/function.str-split.php
-
 
2871
			$str_split_unicode=self::str_split_unicode($conf["stringProcess::str_split_unicode"]);
-
 
2872
			unset($conf["stringProcess::str_split_unicode"]);
2707
			
2873
			
-
 
2874
			#如果分割字串失敗
-
 
2875
			if($str_split_unicode["status"]==="false"){
-
 
2876
				
-
 
2877
				#設置錯誤識別
-
 
2878
				$result["status"]="false";
-
 
2879
				
-
 
2880
				#設置錯誤訊息
-
 
2881
				$result["error"]=$str_split_unicode;
-
 
2882
				
2708
			#回傳結果
2883
				#回傳結果
2709
			return $result;
2884
				return $result;
-
 
2885
				
-
 
2886
				}#if end
2710
			
2887
			
2711
			}#if end
2888
			#取得分割好的字串
-
 
2889
			$spiltedKeyWord=$str_split_unicode["content"];
2712
		
2890
		
2713
		#取得分割好的字串		
2891
			}#else end
2714
		$spiltedKeyWord=$str_split_unicode["content"];
-
 
2715
		
2892
		
2716
		#如果關鍵字比要處理的字串長
2893
		#如果關鍵字比要處理的字串長
2717
		if(count($spiltedKeyWord)>count($spiltedStringIn)){
2894
		if(count($spiltedKeyWord)>count($spiltedStringIn)){
2718
			
2895
			
2719
			#如果有前次的結果
2896
			#如果有前次的結果
Line 2746... Line 2923...
2746
		
2923
		
2747
		#初始化儲存要移除第幾個字之前的內容(索引從0開始)
2924
		#初始化儲存要移除第幾個字之前的內容(索引從0開始)
2748
		$delCount=-1;
2925
		$delCount=-1;
2749
		
2926
		
2750
		#初始化暫存關鍵字的第幾個字
2927
		#初始化暫存關鍵字的第幾個字
2751
		$wordCount=0;		
2928
		$wordCount=0;
2752
		
2929
		
2753
		#無窮迴圈
2930
		#無窮迴圈
2754
		for($i=0;$i<count($spiltedStringIn);$i++){
2931
		for($i=0;$i<count($spiltedStringIn);$i++){
2755
			
2932
			
-
 
2933
			#如果關鍵字不存在
-
 
2934
			if(!isset($spiltedKeyWord[$wordCount])){
-
 
2935
			
-
 
2936
				#debug
-
 
2937
				#var_dump(__LINE__,$spiltedStringIn,$spiltedStringIn[$i]);
-
 
2938
			
-
 
2939
				#跳過
-
 
2940
				continue;
-
 
2941
			
-
 
2942
				}#if end
-
 
2943
			
2756
			#如果有遇到相符合的字元
2944
			#如果有遇到相符合的字元
2757
			if($spiltedStringIn[$i]===$spiltedKeyWord[$wordCount]){
2945
			if($spiltedStringIn[$i]===$spiltedKeyWord[$wordCount]){
2758
				
2946
				
2759
				#換尋找下個字元有無符合
2947
				#換尋找下個字元有無符合
2760
				$wordCount++;
2948
				$wordCount++;
Line 2872... Line 3060...
2872
			#無.
3060
			#無.
2873
			#備註:
3061
			#備註:
2874
			#無.
3062
			#無.
2875
			return stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
3063
			return stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
2876
			unset($conf["stringProcess::delStrBeforeKeyWord"]);
3064
			unset($conf["stringProcess::delStrBeforeKeyWord"]);
2877
				
3065
			
2878
			}#if end
3066
			}#if end
2879
		
3067
		
2880
		#回傳結果
3068
		#回傳結果
2881
		return $result;
3069
		return $result;
2882
		
3070