回答編集履歴

4

翻訳してみました

2016/07/20 10:27

投稿

amaguri
amaguri

スコア227

test CHANGED
@@ -94,51 +94,51 @@
94
94
 
95
95
 
96
96
 
97
- $sql_type = CommonComponent::CheckTOK2SQLtype(trim($data), $sql_type);
97
+ $sql_type = CommonComponent::CheckTOK2SQLtype(trim($data), $sql_type);//トークン名からクエリに変換 //trim — 文字列の先頭および末尾にあるホワイトスペースを取り除く
98
98
 
99
99
 
100
100
 
101
- if (eregi("^TOK_TABNAME|^TOK_TABTYPE|^TOK_ALTERTABLE|^TOK_TABTYPE|^TOK_SHOW|^TOK_CREATEDATABASE|^TOK_DROPDATABASE", trim($data))) {
102
-
103
- $tok_indent = strlen($data) - strlen(ltrim($data));
104
-
105
- $token = trim($data);
106
-
107
-
108
-
109
- $data = fgets($fp, 10240);
110
-
111
- $data = str_replace(array("\r\n","\n","\r"), '', $data);
112
-
113
-
114
-
115
- $objects = array();
116
-
117
-
118
-
119
- while (!feof($fp)) {
120
-
121
- if (eregi("^TOK_TABNAME|^TOK_TABTYPE|^TOK_ALTERTABLE|^TOK_TABTYPE|^TOK_SHOW|^TOK_CREATEDATABASE|^TOK_DROPDATABASE", trim($data))) { break; }
122
-
123
- if ($tok_indent >= (strlen($data) - strlen(ltrim($data)))) { break; }
101
+ if (eregi("^TOK_TABNAME|^TOK_TABTYPE|^TOK_ALTERTABLE|^TOK_TABTYPE|^TOK_SHOW|^TOK_CREATEDATABASE|^TOK_DROPDATABASE", trim($data))) {//trim — 文字列の先頭および末尾にあるホワイトスペースを取り除く  "^TOK_TABNAME|^TOK_TABTYPE|^TOK_ALTERTABLE|^TOK_TABTYPE|^TOK_SHOW|^TOK_CREATEDATABASE|^TOK_DROPDATABASE"からはじまる(文字列の先頭および末尾にあるホワイトスペースを取り除いた$data())の場合
102
+
103
+ $tok_indent = strlen($data) - strlen(ltrim($data));//strlen — 文字列の長さを得る ltrim — 文字列の最初から空白 (もしくはその他の文字) を取り除く $tok_indent = ($data)の長さ - (($data))の文字列の最初から空白 (もしくはその他の文字) を取り除いた長さ
104
+
105
+ $token = trim($data);// $token =文字列の先頭および末尾にあるホワイトスペースを取り除いた($data)(何が入っているかさっぱり)
106
+
107
+
108
+
109
+ $data = fgets($fp, 10240);//$data = ($fp, 10240)でファイルポインタから1行取得する
110
+
111
+ $data = str_replace(array("\r\n","\n","\r"), '', $data);//配列(改行、改行、改行),空白,fgets($fp, 10240);
112
+
113
+
114
+
115
+ $objects = array();//$objects = 配列()
116
+
117
+
118
+
119
+ while (!feof($fp)) {//fpがファイルポインタがファイル終端に達していない場合
120
+
121
+ if (eregi("^TOK_TABNAME|^TOK_TABTYPE|^TOK_ALTERTABLE|^TOK_TABTYPE|^TOK_SHOW|^TOK_CREATEDATABASE|^TOK_DROPDATABASE", trim($data))) { break; }//"^TOK_TABNAME|^TOK_TABTYPE|^TOK_ALTERTABLE|^TOK_TABTYPE|^TOK_SHOW|^TOK_CREATEDATABASE|^TOK_DROPDATABASE"からはじまる(文字列の先頭および末尾にあるホワイトスペースを取り除いた$data())の場合,break(何するか不明)
122
+
123
+ if ($tok_indent >= (strlen($data) - strlen(ltrim($data)))) { break; }//>= より多いか等しい $tok_indentの長さが($data) -(($data))の文字列の最初から空白 (もしくはその他の文字) を取り除いた長さと等しいかそれより多い場合、break(何するか不明)
124
124
 
125
125
 
126
126
 
127
- if (!eregi("^TOK_|\.", trim($data))) {
127
+ if (!eregi("^TOK_|\.", trim($data))) {//^TOK_|\.からはじまる文字列の先頭および末尾にあるホワイトスペースを取り除いた$data(どうなってるか不明?)ではない場合
128
-
128
+
129
- $objects[] = trim($data);
129
+ $objects[] = trim($data);//$objectsの[]の中身=先頭および末尾にあるホワイトスペースを取り除いた$data(どうなってるか不明?)
130
130
 
131
131
  }
132
132
 
133
- $data = fgets($fp, 10240);
133
+ $data = fgets($fp, 10240);//$data = ($fp, 10240)でファイルポインタから1行取得する
134
-
134
+
135
- $data=str_replace(array("\r\n","\n","\r"), '', $data);
135
+ $data=str_replace(array("\r\n","\n","\r"), '', $data);//配列(改行、改行、改行),空白,fgets($fp, 10240);
136
136
 
137
137
  }
138
138
 
139
139
 
140
140
 
141
- if (count($objects) >= 2) {
141
+ if (count($objects) >= 2) {//count — 変数に含まれるすべての要素、 あるいは$objectsつまりarray()に含まれる何かの数を数える $objectsが2と等しいかそれより大きい場合
142
142
 
143
143
  $results[$cnt]->no = $sql_query_no;
144
144
 
@@ -150,19 +150,19 @@
150
150
 
151
151
  $cnt++;
152
152
 
153
- } else if (count($objects) == 1) {
153
+ } else if (count($objects) == 1) {//上のifが偽で$objectsつまりarray()が1と等しい場合
154
154
 
155
155
  $results[$cnt]->no = $sql_query_no;
156
156
 
157
157
  $results[$cnt]->type = $sql_type;
158
158
 
159
- if (eregi("^TOK_SHOW|^TOK_CREATEDATABASE|^TOK_DROPDATABASE", $token)) {
159
+ if (eregi("^TOK_SHOW|^TOK_CREATEDATABASE|^TOK_DROPDATABASE", $token)) {//"^TOK_SHOW|^TOK_CREATEDATABASE|^TOK_DROPDATABASE"からはじまる $tokenつまり(trim($data)の場合
160
160
 
161
161
  $results[$cnt]->db = $objects[0];
162
162
 
163
163
  $results[$cnt]->tbl = "";
164
164
 
165
- } else {
165
+ } else {//上のifが偽の場合
166
166
 
167
167
  $results[$cnt]->db = $cur_db;
168
168
 
@@ -172,7 +172,7 @@
172
172
 
173
173
  $cnt++;
174
174
 
175
- } else if (count($objects) == 0 and eregi("^TOK_SHOW", $token)) {
175
+ } else if (count($objects) == 0 and eregi("^TOK_SHOW", $token)) {//上のeleseifが偽で$objectsつまりarray()が0と等しい&"^TOK_SHOW"からはじまる $tokenつまり(trim($data)の場合
176
176
 
177
177
  $results[$cnt]->no = $sql_query_no;
178
178
 
@@ -186,11 +186,11 @@
186
186
 
187
187
  }
188
188
 
189
- } else {
189
+ } else {//上のif,eleseifが全て偽の場合
190
-
190
+
191
- $data = fgets($fp, 10240);
191
+ $data = fgets($fp, 10240);//$data = ($fp, 10240)でファイルポインタから1行取得する
192
-
192
+
193
- $data = str_replace(array("\r\n","\n","\r"), '', $data);
193
+ $data = str_replace(array("\r\n","\n","\r"), '', $data);//配列(改行、改行、改行),空白,fgets($fp, 10240);
194
194
 
195
195
  }
196
196
 
@@ -198,15 +198,15 @@
198
198
 
199
199
 
200
200
 
201
- $sql_query = "";
201
+ $sql_query = "";//$sql_query = 空白
202
202
 
203
203
  }
204
204
 
205
205
  }
206
206
 
207
- fclose($fp);
207
+ fclose($fp);//fclose — オープンされたファイルポインタをクローズする $fpをクローズする
208
-
208
+
209
- return $results;
209
+ return $results;//$resultsを返す。
210
210
 
211
211
  }
212
212
 

3

追加

2016/07/20 10:27

投稿

amaguri
amaguri

スコア227

test CHANGED
@@ -211,3 +211,37 @@
211
211
  }
212
212
 
213
213
  ```
214
+
215
+ ```php
216
+
217
+ //トークン名からクエリに変換
218
+
219
+ function CheckTOK2SQLtype($data,$sql_type){
220
+
221
+ if ( $data == "TOK_DESCTABLE" ){ return "desc"; }
222
+
223
+ if ( $data == "TOK_CREATETABLE" ){ return "create table"; }
224
+
225
+ if ( $data == "TOK_TABREF" ){ return "select"; }
226
+
227
+ if ( $data == "TOK_INSERT" ){ return "insert"; }
228
+
229
+ if ( $data == "TOK_DROPTABLE" ){ return "drop table"; }
230
+
231
+ if ( eregi("^TOK_SHOW",$data) ){ return "show"; }
232
+
233
+ if ( eregi("^TOK_ALTER",$data) ){ return "alter table"; }
234
+
235
+
236
+
237
+ if ( $data == "TOK_CREATEDATABASE" ){ return "create database"; }
238
+
239
+ if ( $data == "TOK_DROPDATABASE" ){ return "drop database"; }
240
+
241
+
242
+
243
+ return $sql_type;
244
+
245
+ }
246
+
247
+ ```

2

情報の追加

2016/07/20 09:49

投稿

amaguri
amaguri

スコア227

test CHANGED
@@ -22,15 +22,15 @@
22
22
 
23
23
 
24
24
 
25
- if ( !($fp=fopen($exp_file,"r")) ){ return $results; }//fopen()=ファイルをオープン。 $fp=開けた$exp_fileが"r"ではない場合 $resultsを返す。
25
+ if ( !($fp=fopen($exp_file,"r")) ){ return $results; }//fopen()=ファイルをオープン。  $fp=開けた$exp_fileが"r"ではない場合 $resultsを返す。
26
-
26
+
27
- while(!feof($fp)){//while=ループ文 feof — ファイルポインタがファイル終端に達しているかどうか調べる $fのファイルポインタがファイル終端に達していない場合以下をループする。
27
+ while(!feof($fp)){//while=ループ文 feof — ファイルポインタがファイル終端に達しているかどうか調べる $fのファイルポインタがファイル終端に達していない場合以下をループする。
28
-
29
-
30
-
31
-
32
-
28
+
29
+
30
+
31
+
32
+
33
- $data = fgets($fp, 10240); //fgets — ファイルポインタから1行取得する $data = ($fp, 10240)でファイルポインタから1行取得する
33
+ $data = fgets($fp, 10240); //fgets — ファイルポインタから1行取得する $data = ($fp, 10240)でファイルポインタから1行取得する
34
34
 
35
35
  $data=str_replace(array("\r\n","\n","\r"), '', $data);//str_replace — 検索文字列に一致したすべての文字列を置換する 配列(改行、改行、改行),空白,fgets($fp, 10240);
36
36
 
@@ -38,19 +38,19 @@
38
38
 
39
39
  list($dummy,$cur_db)=split("[ ;]",$data); //list — 配列と同様の形式で、複数の変数への代入を行う split — 正規表現により文字列を分割し、配列に格納する ($dummy,$cur_db("default"?))=("[ ;]"を,$dataに配列に格納する)
40
40
 
41
- }"[ ;]",$data
41
+ }"[ ;]",$data//よくわからない
42
42
 
43
43
 
44
44
 
45
45
  //クエリ
46
46
 
47
- if ( eregi("^explain ",$data) ){
47
+ if ( eregi("^explain ",$data) ){//explainからはじまる,$data(どうなっているか不明)の場合
48
-
48
+
49
- $sql_query=substr($data,8);
49
+ $sql_query=substr($data,8);//substr — 文字列の一部分を返す $sql_query=($dataの8)を返す
50
50
 
51
51
  //$this->log("QUERY=[$sql_query]",LOG_DEBUG);
52
52
 
53
- $sql_query_no++;
53
+ $sql_query_no++;//$sql_query_noに1を足す
54
54
 
55
55
  }
56
56
 
@@ -76,21 +76,21 @@
76
76
 
77
77
  //
78
78
 
79
- if (eregi("^ABSTRACT SYNTAX TREE", $data) and !feof($fp)) {
79
+ if (eregi("^ABSTRACT SYNTAX TREE", $data) and !feof($fp)) {//^ABSTRACT SYNTAX TREE"からはじまる$data(どうなってるか不明?)と$fpがファイルポインタがファイル終端に達していない場合
80
-
80
+
81
- $data = fgets($fp, 10240);
81
+ $data = fgets($fp, 10240);//$data = ($fp, 10240)でファイルポインタから1行取得する
82
-
82
+
83
- $data = str_replace(array("\r\n","\n","\r"), '', $data);
83
+ $data = str_replace(array("\r\n","\n","\r"), '', $data);//配列(改行、改行、改行),空白,fgets($fp, 10240);
84
-
85
-
86
-
84
+
85
+
86
+
87
- $sql_type="";
87
+ $sql_type="";//$sql_type=空白
88
-
89
-
90
-
88
+
89
+
90
+
91
- while (!feof($fp)) {
91
+ while (!feof($fp)) {//$fのファイルポインタがファイル終端に達していない場合以下をループする。
92
-
92
+
93
- if (eregi("^STAGE DEPENDENCIES", $data)) { break; }
93
+ if (eregi("^STAGE DEPENDENCIES", $data)) { break; }//STAGE DEPENDENCIESからはじまる$data(どうなってるか不明?)の場合、break(何するか不明)
94
94
 
95
95
 
96
96
 
@@ -210,42 +210,4 @@
210
210
 
211
211
  }
212
212
 
213
-
214
-
215
-
216
-
217
-
218
-
219
-
220
-
221
- //トークン名からクエリに変換
222
-
223
- function CheckTOK2SQLtype($data,$sql_type){
224
-
225
- if ( $data == "TOK_DESCTABLE" ){ return "desc"; }
226
-
227
- if ( $data == "TOK_CREATETABLE" ){ return "create table"; }
228
-
229
- if ( $data == "TOK_TABREF" ){ return "select"; }
230
-
231
- if ( $data == "TOK_INSERT" ){ return "insert"; }
232
-
233
- if ( $data == "TOK_DROPTABLE" ){ return "drop table"; }
234
-
235
- if ( eregi("^TOK_SHOW",$data) ){ return "show"; }
236
-
237
- if ( eregi("^TOK_ALTER",$data) ){ return "alter table"; }
238
-
239
-
240
-
241
- if ( $data == "TOK_CREATEDATABASE" ){ return "create database"; }
242
-
243
- if ( $data == "TOK_DROPDATABASE" ){ return "drop database"; }
244
-
245
-
246
-
247
- return $sql_type;
248
-
249
- }
250
-
251
213
  ```

1

追加

2016/07/20 09:47

投稿

amaguri
amaguri

スコア227

test CHANGED
@@ -210,4 +210,42 @@
210
210
 
211
211
  }
212
212
 
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+ //トークン名からクエリに変換
222
+
223
+ function CheckTOK2SQLtype($data,$sql_type){
224
+
225
+ if ( $data == "TOK_DESCTABLE" ){ return "desc"; }
226
+
227
+ if ( $data == "TOK_CREATETABLE" ){ return "create table"; }
228
+
229
+ if ( $data == "TOK_TABREF" ){ return "select"; }
230
+
231
+ if ( $data == "TOK_INSERT" ){ return "insert"; }
232
+
233
+ if ( $data == "TOK_DROPTABLE" ){ return "drop table"; }
234
+
235
+ if ( eregi("^TOK_SHOW",$data) ){ return "show"; }
236
+
237
+ if ( eregi("^TOK_ALTER",$data) ){ return "alter table"; }
238
+
239
+
240
+
241
+ if ( $data == "TOK_CREATEDATABASE" ){ return "create database"; }
242
+
243
+ if ( $data == "TOK_DROPDATABASE" ){ return "drop database"; }
244
+
245
+
246
+
247
+ return $sql_type;
248
+
249
+ }
250
+
213
251
  ```