initxt-reader
Index.php
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
error_reporting(E_ALL) ;
include(/*Locatie van je classfile*/) ;
$Inihandler = new IniHandler(/*Locatie van je config file*/) ;
echo "<pre>" ;
print_r($Inihandler->getFileContent(/*Filename*/,1,2)) ;
echo "</pre>" ;
?>
error_reporting(E_ALL) ;
include(/*Locatie van je classfile*/) ;
$Inihandler = new IniHandler(/*Locatie van je config file*/) ;
echo "<pre>" ;
print_r($Inihandler->getFileContent(/*Filename*/,1,2)) ;
echo "</pre>" ;
?>
Config.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
/*
Dit is de locatie waar je bestanden staan
*/
$config[1] = "ini_files/" ;
/*
Onderstaand is alleen van belang voor bestanden waarvan de extensie niet .txt of .ini is.
Onderstaande configuratie geeft aan hoe de betreffende bestanden dan behandeld dienen te worden .
*/
$config[2] = "txt" ; //Dit kan ini of txt zijn.
/*
Deze waarde hoeft alleen opgegeven te worden als er binnen 1 regel een ander scheidingsteken word gebruikt zoals bijv :
waarde1,waarde2,waarde3
De defaultwaarde is "="
*/
$config[3] = "" ;
?>
/*
Dit is de locatie waar je bestanden staan
*/
$config[1] = "ini_files/" ;
/*
Onderstaand is alleen van belang voor bestanden waarvan de extensie niet .txt of .ini is.
Onderstaande configuratie geeft aan hoe de betreffende bestanden dan behandeld dienen te worden .
*/
$config[2] = "txt" ; //Dit kan ini of txt zijn.
/*
Deze waarde hoeft alleen opgegeven te worden als er binnen 1 regel een ander scheidingsteken word gebruikt zoals bijv :
waarde1,waarde2,waarde3
De defaultwaarde is "="
*/
$config[3] = "" ;
?>
Ini_handler.class.php
Code (php)
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<?php
class IniHandler
{
var $Inilocation ; // De locatie van de bestanden die gebruikt worden
var $DefaultFiletype ; // De default filetype (1 is txt, 2 is ini)
var $CurrentFiletype ; // De filetype van het huidige bestand (indien niet txt of ini gelijk aan de default filetype
var $Seperator ; //Hiermee kun je aangeven welk teken word gebruikt om de waardes binnen 1 rege te scheiden (txt only)
function IniHandler($config_files)
{
include($config_files) ;
$this->Inilocation = $config[1] ; // Set je bestandslocatie
/* Onderstande code controleerd of er een / achter je mapnaam staat
Zo niet word deze er achter gezet */
if (substr($this->Inilocation,-1) != "/")
{
$this->Inilocation .= "/" ;
}
/*--------------*/
/*Deze code controleerd welke default filetype er in de configfile gezet is
Deze config optie word gebruikt op het moment dat de gebruiker de file geen extensie geeft
Ook word deze gebruikt als er een extensie word opgegeven die niet bekend is.
Dit is noodzakelijk voor een goede afhandeling van de file content. Eventuele txt/ini extensies zullen ten alle tijden de default overschrijven*/
$file_type = strtolower($config[2] ) ;
switch ($file_type)
{
case("txt") :
{
$this->DefaultFiletype = 1 ;
}
break ;
case ("ini") :
{
$this->DefaultFiletype = 2 ;
}
break ;
}
/*--------------*/
/*Met name van belang voor de mensen met txt files is de Seperator. Hiermee kun je aangeven welk teken word gebruikt om de waardes binnen 1 rege te scheiden*/
if (isset($config[3] ) && !empty($config[3]) && $config[3] != "")
{
$this->Seperator = $config[3] ;
}
else
{
$this->Seperator = "=" ;
}
}
/* Deze functie controleert of een bestand bestaat en welk type het is*/
function checkFile($filename)
{
if (file_exists($this->Inilocation."".$filename))
{
$file_type = end(explode(".",$filename)) ;
$file_type = strtolower($file_type) ;
switch ($file_type)
{
case("txt") :
{
$this->CurrentFiletype = 1 ;
}
break ;
case ("ini") :
{
$this->CurrentFiletype = 2 ;
}
break ;
default:
{
$this->CurrentFiletype = $this->DefaultFiletype ;
}
break ;
}
return true ;
}
else
{
return false ;
}
}
/*En soort Switch functie. Hier word dmv eerder genoemde functie het filetype bepaald en aangegeven welke actie als volgende dient te worden uitgevoerd*/
function getFileContent($filename)
{
if ($this->checkFile($filename))
{
for($i = 1 ; $i < func_num_args(); $i++)
{
$key_list[] = func_get_arg($i) ;
}
$filename = $this->Inilocation."".$filename ;
switch ($this->CurrentFiletype)
{
case(1) :
{
$file_content = $this->getTxtFileContent($filename , $key_list) ;
}
break ;
case(2) :
{
$file_content = $this->getIniFileContent($filename , $key_list) ;
}
break ;
}
return $file_content ;
}
else
{
return false ;
}
}
/* Deze functie leest de ini files uit */
function getIniFileContent($filename,$key_list = false)
{
$file_content = parse_ini_file($filename,true) ;
if (is_array($key_list))
{
$file_return_content = null ;
foreach ($key_list as $key)
{
$file_return_content[] = $file_content[$key] ;
}
return $file_return_content;
}
else
{
return $file_content ;
}
}
/*Deze functie leest de txt files uit en zet elke regen appart in een array*/
function getTxtFileContent($filename,$line_nr = false)
{
$handler = fopen($filename,"r") ;
if (isset($line_nr))
{
$i = 1 ;
}
$data = false ;
while (!feof($handler))
{
$line = fgets($handler) ;
if ( !in_array($i,$line_nr))
{
$i++ ;
continue ;
}
else
{
$i++ ;
$data[] = $line ;
}
}
fclose($handler);
return $data ;
}
}
?>
class IniHandler
{
var $Inilocation ; // De locatie van de bestanden die gebruikt worden
var $DefaultFiletype ; // De default filetype (1 is txt, 2 is ini)
var $CurrentFiletype ; // De filetype van het huidige bestand (indien niet txt of ini gelijk aan de default filetype
var $Seperator ; //Hiermee kun je aangeven welk teken word gebruikt om de waardes binnen 1 rege te scheiden (txt only)
function IniHandler($config_files)
{
include($config_files) ;
$this->Inilocation = $config[1] ; // Set je bestandslocatie
/* Onderstande code controleerd of er een / achter je mapnaam staat
Zo niet word deze er achter gezet */
if (substr($this->Inilocation,-1) != "/")
{
$this->Inilocation .= "/" ;
}
/*--------------*/
/*Deze code controleerd welke default filetype er in de configfile gezet is
Deze config optie word gebruikt op het moment dat de gebruiker de file geen extensie geeft
Ook word deze gebruikt als er een extensie word opgegeven die niet bekend is.
Dit is noodzakelijk voor een goede afhandeling van de file content. Eventuele txt/ini extensies zullen ten alle tijden de default overschrijven*/
$file_type = strtolower($config[2] ) ;
switch ($file_type)
{
case("txt") :
{
$this->DefaultFiletype = 1 ;
}
break ;
case ("ini") :
{
$this->DefaultFiletype = 2 ;
}
break ;
}
/*--------------*/
/*Met name van belang voor de mensen met txt files is de Seperator. Hiermee kun je aangeven welk teken word gebruikt om de waardes binnen 1 rege te scheiden*/
if (isset($config[3] ) && !empty($config[3]) && $config[3] != "")
{
$this->Seperator = $config[3] ;
}
else
{
$this->Seperator = "=" ;
}
}
/* Deze functie controleert of een bestand bestaat en welk type het is*/
function checkFile($filename)
{
if (file_exists($this->Inilocation."".$filename))
{
$file_type = end(explode(".",$filename)) ;
$file_type = strtolower($file_type) ;
switch ($file_type)
{
case("txt") :
{
$this->CurrentFiletype = 1 ;
}
break ;
case ("ini") :
{
$this->CurrentFiletype = 2 ;
}
break ;
default:
{
$this->CurrentFiletype = $this->DefaultFiletype ;
}
break ;
}
return true ;
}
else
{
return false ;
}
}
/*En soort Switch functie. Hier word dmv eerder genoemde functie het filetype bepaald en aangegeven welke actie als volgende dient te worden uitgevoerd*/
function getFileContent($filename)
{
if ($this->checkFile($filename))
{
for($i = 1 ; $i < func_num_args(); $i++)
{
$key_list[] = func_get_arg($i) ;
}
$filename = $this->Inilocation."".$filename ;
switch ($this->CurrentFiletype)
{
case(1) :
{
$file_content = $this->getTxtFileContent($filename , $key_list) ;
}
break ;
case(2) :
{
$file_content = $this->getIniFileContent($filename , $key_list) ;
}
break ;
}
return $file_content ;
}
else
{
return false ;
}
}
/* Deze functie leest de ini files uit */
function getIniFileContent($filename,$key_list = false)
{
$file_content = parse_ini_file($filename,true) ;
if (is_array($key_list))
{
$file_return_content = null ;
foreach ($key_list as $key)
{
$file_return_content[] = $file_content[$key] ;
}
return $file_return_content;
}
else
{
return $file_content ;
}
}
/*Deze functie leest de txt files uit en zet elke regen appart in een array*/
function getTxtFileContent($filename,$line_nr = false)
{
$handler = fopen($filename,"r") ;
if (isset($line_nr))
{
$i = 1 ;
}
$data = false ;
while (!feof($handler))
{
$line = fgets($handler) ;
if ( !in_array($i,$line_nr))
{
$i++ ;
continue ;
}
else
{
$i++ ;
$data[] = $line ;
}
}
fclose($handler);
return $data ;
}
}
?>