1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
/** -------------------------------------------------------------------------------
* ファイルシステム:ファイルデータ読み込み:fgetcsvの利用例
* 2015.09.15 作成 yoshi of CXMedia Inc.
* -------------------------------------------------------------------------------- */
// 初期設定
$filename = 'data/PHP_file_function.txt';
// ファイルオープン:readモード 「@は、エラー制御演算子で、エラーメッセージの出力を回避」
if(!$fh = @fopen($filename,"r")){
exit("ファイルが開けません。");
}
// HTMLのボディ部分の保存用
$html_body = "";
// HTMLのテーブルセット
$html_body .= '<table class="table_border table_center" width="960">';
/* ---------------------------------------------------------------------------
* ファイルの読込:CSV形式
* fgetcsv( handle [,length [,delimiter [,enclosure [,escape]]]])
* lengthの省略:最大行長制限なし、lengthの省略:","、escapeは、PHP5.3以降
* --------------------------------------------------------------------------- */
// 「tab」区切りで、レコード長指定なしのfgetcsvによる読み込み
while (($data_ary = fgetcsv($fh,0,"\t")) !== FALSE) {
//読込データ(配列)の件数セット
$num = count($data_ary);
$html_body .= '<tr>';
for ($c=0; $c < $num; $c++) {
// 「Shift_JISコード」のファイルの内容から「UTF-8」に変換
$str = mb_convert_encoding($data_ary[$c],'UTF-8','Shift_JIS');
// グループ欄か各欄の表示かの判断
if($num == 3){
// 「各欄の表示」
// 関数名の欄で強調表示のための正規表現パターンの作成
if($c == 0){
$reg_ptn = ($str)? '/('.$str.')/':'';
}
// 各欄でデータありのとき
if($str){
// 正規表現パターンがセットされた利用関数の強調表示のセット
if($reg_ptn){
$str = preg_replace($reg_ptn,'<span class="font_bblue">$1</span>',$str);
}
} else {
// NULLデータの時、空白文字のセット
$str = ' ';
}
$html_body .= '<td>'.$str ."</td>\n";
} else {
// 「グループ欄のとき背景色とカラム統合」
$html_body .= '<td colspan="3" class="align_c bgc_yellow">'.$str ."</td>\n";
}
}
$html_body .= '</tr>';
}
$html_body .= '</table>';
// ファイルクローズ
fclose($fh);
/* -------------------------
* HTMLドキュメント出力
* ------------------------- */
// HTMLヘッダー出力
header_out();
// HTMLボディ部分の内容表示
echo $html_body;
// HTMLヘッダー出力
footer_out();
exit;
// --- HTMLドキュメントのヘッダー出力 ---
function header_out(){
echo <<<_EOL_
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<title>ファイルデータ読み込み:fgetcsv</title>
<style type="text/css">
.table_border{
border-collapse:collapse;
}
table.table_border td{
border:1px solid #999999;
}
table.table_center{
margin: 0px auto;
}
.align_c{
text-align:center;
}
.bgc_yellow {
background-color:yellow;
}
.font_bblue{
color:blue;
font-weight:bold;
}
</style>
</head>
<body>
_EOL_;
}
// --- HTMLドキュメントのフッター出力 ---
function footer_out(){
echo <<<_EOL_
</body>
</html>
_EOL_;
}
?>