Subversion Repositories qbpwcf-lib(archive)

Rev

Rev 548 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
443 liveuser 1
#!/usr/bin/php
2
<?php
3
 
4
#使用命名空間qbpwcf
5
namespace qbpwcf;
6
 
7
#匯入外部套件
8
require_once("qbpwcf/allInOne.php");
9
 
10
#設定要讀取的檔案
11
$file="./assets of stringProcess/https_error_504.log.txt";
12
 
13
#函式說明:
14
#依據行號分隔抓取檔案的內容,結果會回傳一個陣列
15
#回傳的變數說明:
16
#$result["status"],執行是否成功,"true"代表成功;"fasle"代表失敗.
17
#$result["error"],錯誤訊息提示.
18
#$result["warning"],警告訊息.
19
#$result["function"],當前執行的函數名稱.
20
#$result["fileContent"],爲檔案的內容陣列.
21
#$result["lineCount"],爲檔案內容總共的行數.
22
#$result["fullContent"],為檔案的完整內容.
23
#$result["base64data"],為檔案的base64內容.
24
#$result["mimeType"],為檔案的mime type.
25
#必填參數:
26
#$conf["filePositionAndName"],字串,爲檔案的位置以及名稱.
27
$conf["filePositionAndName"]=$file;
28
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
29
$conf["fileArgu"]=__FILE__;
30
#可省略參數:
31
#$conf["web"],是要取得網路上的檔案則為"true";反之則為"false".
32
$conf["web"]="false";
33
#參考資料:
34
#file(),取得檔案內容的行數.
35
#file=>http:#php.net/manual/en/function.file.php
36
#rtrim(),剔除透過file()取得每行內容結尾的換行符號.
37
#filesize=>http://php.net/manual/en/function.filesize.php
38
#參考資料:
39
#無.
40
#備註:
41
#無.
42
$getFileContent=fileAccess::getFileContent($conf);
43
unset($conf);
44
 
45
#如果執行失敗
46
if($getFileContent["status"]==="false")
47
{
48
 
49
	#印出錯誤
50
	var_dump($getFileContent);
51
 
52
	#錯誤離開
53
	exit(1);
54
 
55
}#if end
56
 
57
#初始化結果
58
$result["content"]=array();
59
 
60
#針對每個行內容
61
foreach($getFileContent["fileContent"] as $lineNo => $lineContent)
62
{
63
 
64
	#將字串進行解析,取得兩個關鍵字中間的內容.
65
	#回傳結果:
66
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
67
	#$result["function"],當前執行的函式內容.
68
	#$result["error"],錯誤訊息陣列.
69
	#$result["content"],取得的內容.
70
	#$result["oriStr"],原始的內容.
71
	#$result["found"],是否有找到符合條件的內容.
72
	#必填參數:
73
	#$conf["input"],字串,要處理的字串.
74
	$conf["input"]=$lineContent;
75
	#$conf["startKeyWord"],字串,開頭的關鍵字.
76
	$conf["startKeyWord"]="[";
77
	#$conf["endKeyWord"],字串,結束的關鍵字.
78
	$conf["endKeyWord"]="]";
79
	#可省略參數:
80
	#無.
81
	#參考資料:
82
	#無.
83
	#備註:
84
	#無.
85
	$getContentBetweenKeyWord=stringProcess::getContentBetweenKeyWord($conf);
86
	unset($conf);
87
 
88
	#如果執行失敗
89
	if($getContentBetweenKeyWord["status"]==="false")
90
	{
91
 
92
		#印出錯誤
93
		var_dump($getContentBetweenKeyWord);
94
 
95
		#錯誤離開
96
		exit(1);
97
 
98
	}#if end
99
 
100
	#var_dump($getContentBetweenKeyWord);exit;
101
 
102
	#如果無符合的內容
103
	if($getContentBetweenKeyWord["found"]==="false")
104
	{
105
 
106
		#下一行
107
		continue;
108
 
109
	}#if end
110
 
111
	#取得日期與時間
112
	$dateTime=$getContentBetweenKeyWord["content"];
113
 
114
	#var_dump($getContentBetweenKeyWord);
115
 
116
	#依照日期與時間記錄 對應的內容
117
	$result["content"][$dateTime][]=$lineContent;
118
 
119
}#foreach end
120
 
121
#針對每個 時間點
122
foreach($result["content"] as $dateTime => $lines)
123
{
124
 
125
	#取得同時間的資料有多少筆
126
	$count=count($lines);
127
 
128
	#如果沒有同時間的資料
129
	if($count<2)
130
	{
131
 
132
		#下一輪
133
		continue;
134
 
135
	}#if end
136
 
137
	#印出時間
138
	echo "Date Time:".$dateTime." ".$count." requests in same time".PHP_EOL;
139
 
140
	#針對每行內容
141
	foreach($lines as $line)
142
	{
143
 
144
		#印出記錄
145
		echo $line.PHP_EOL;
146
 
147
	}#foreach end
148
 
149
	#結束這個時間的記錄
150
	echo PHP_EOL;
151
 
152
}#foreach end
153
 
154
?>