Chuyển nội dung file sang XML
Trang 1Chuyển nội dung file sang XML
class_file2xml.php
view plainprint?
1 <?
2 /*===============================
3 - Class: File2XML
4 - Author: Huynh Hai Huynh
5 - Email: Huynhhaihuynh@gmail.com
6 - Website: http://www.php.net.vn
7 ===============================*/
8
9 class file2xml
10 {
11
12
13 var $folder_read;
14
15 var $folder_write;
16
17 var $xml_write;
18
19 var $ext_read = array();
20
21 var $file_in = array();
22
23 var $time_limit;
24
25 var $size_limit;
26
27 function listfile()
28 {
29
30 $file_in = array();
31
32 if ($handle = @opendir($this->folder_read))
33 {
34 while (false !== ($file = readdir($handle)))
35 {
36 if ($file != "." && $file != " ")
37 {
38
39 if (is_file($this->folder_read."/".$file))
40 {
41
42
43 $mfile = explode(".",$file);
44
45
46 $f_size = filesize($this->folder_read."/".$file);
47
48 $ext = $mfile[count($mfile)-1];
49
50
Trang 251
52 if (count($mfile)==1 and in_array("NULL",>ext_read) and ($f_size <=
$this->size_limit))
53 {
54 $file_in[] = $file;
55 }
56 elseif (in_array(strtolower($ext),$this->ext_read) and ($f_size <= $this->size_limit))
57 {
58 $file_in[] = $file;
59 }
60
61 }
62
63 }
64 }
65 closedir($handle);
66
67 $this->file_in = $file_in;
68
69 $this->dumpxml();
70
71 }
72 else die("Can not read this folder: " $this->folder_read );
73
74 }
75
76 function dumpxml()
77 {
78
79
80
81
82 if (count($this->file_in)>0)
83 {
84
85 // SET time excute
86 ini_set("max_execution_time",$this->time_limit);
87
88 // date
89
90 $date = date("H:j d-m-Y");
91
92 //repare file forwrite
93 $handle_w = fopen($this->folder_save."/".$this->xml_write, "w+");
94
95 fclose($handle_w);
96
97 echo "================================<br>";
98 echo "<b>File2XML v1.0</b><br>";
99 echo " Author: <b>Huynh Hai Huynh</b><br>";
100 echo " Email: <b>huynhhaihuynh@gmail.com</b><br>";
101 echo " Creating file: <b>".$this->xml_write."</b><br>";
102 echo " Save at: <b>".$this->folder_save."</b><br>";
103 echo " Date: <b>".$date."</b><br>";
104 echo "================================<br>";
105 // Create XML struc
Trang 3106 $dom = new DOMDocument('1.0', 'iso-8859-1');
107
108 $element = $dom->appendChild(new DOMElement('information'));
109
110 $element_auth = new DOMElement('author', 'FILE to XML coded by LM -
huynhhaihuynh@gmail');
111
112 $element_version = new DOMElement('version', 'File2XML v1.0');
113
114 $element_date = new DOMElement('date_created', $date);
115
116 $element_file = new DOMElement('file_convert', count($this->file_in));
117
118 $element_conv = $element->appendChild(new DOMElement('main'));
119
120 $is=0;
121
122 $total = array();
123
124 foreach ($this->file_in as $fl)
125
126 {
127
128 $is++;
129
130 $fl_full = $this->folder_read.$fl;
131
132 $handle = fopen($fl_full , "r");
133
134 while (!feof($handle))
135 {
136 $buffer = fgets($handle, 4096);
137
138 $total[$is].=$buffer;
139 }
140
141 fclose($handle);
142
143
144
145 $element_conv_file_details = $element_conv->appendChild(new DOMElement('file'));
146
147 $element_conv_file_name = new DOMElement('file_name', $fl);
148
149 $element_conv_file_size = new DOMElement('file_size', @filesize($fl_full)." bytes");
150
151 $element_conv_file_data = new DOMElement('file_data',
base64_encode($total[$is]));
152
153 $element_conv_file_details->appendChild($element_conv_file_name);
154
155 $element_conv_file_details->appendChild( $element_conv_file_size);
156
157 $element_conv_file_details->appendChild( $element_conv_file_data);
158
159
Trang 4160 echo "Writing file: $fl<br>";
161
162 }
163
164
165 $element->appendChild($element_auth);
166
167 $element->appendChild($element_version);
168
169 $element->appendChild($element_date);
170
171 $element->appendChild($element_file);
172
173 $element->appendChild($element_conv);
174
175 $con_save = $dom->save($this->folder_save."/".$this->xml_write);
176
177 echo "================================<br>";
178
179 echo "DONE! Your files are writen successful:
".filesize($this->folder_save."/".$this->xml_write)." bytes";
180
181 // End
182
183 }
184 else die("No list file found");
185
186 }
187
188
189
190
191 }
192
193 ?>
<? /*=============================== - Class: File2XML - Author: Huynh Hai Huynh - Email: Huynhhaihuynh@gmail.com - Website: http://www.php.net.vn
===============================*/ class file2xml { var $folder_read; var $folder_write; var $xml_write; var $ext_read = array(); var $file_in = array(); var $time_limit; var
$size_limit; function listfile() { $file_in = array(); if ($handle = @opendir($this->folder_read)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != " ") { if (is_file($this->folder_read."/".$file)) { $mfile = explode(".",$file); $f_size = filesize($this->folder_read."/".$file); $ext = $mfile[count($mfile)-1]; if
(count($mfile)==1 and in_array("NULL",$this->ext_read) and ($f_size <= $this->size_limit))
{ $file_in[] = $file; } elseif (in_array(strtolower($ext),$this->ext_read) and ($f_size <= $this->size_limit)) { $file_in[] = $file; } } } } closedir($handle); $this->file_in = $file_in; $this->dumpxml(); } else die("Can not read this folder: " $this->folder_read ); } function dumpxml() { if (count($this->file_in)>0) { // SET time excute ini_set("max_execution_time",$this->time_limit); // date
$date = date("H:j d-m-Y"); //repare file forwrite $handle_w =
fopen($this->folder_save."/".$this->xml_write, "w+"); fclose($handle_w); echo
"================================<br>"; echo "<b>File2XML v1.0</b><br>";
echo " Author: <b>Huynh Hai Huynh</b><br>"; echo " Email:
<b>huynhhaihuynh@gmail.com</b><br>"; echo " Creating file:
<b>".$this->xml_write."</b><br>"; echo " Save at: <b>".$this->folder_save."</b><br>"; echo "
Trang 5Date: <b>".$date."</b><br>"; echo "================================<br>"; // Create XML struc $dom = new DOMDocument('1.0', 'iso-8859-1'); $element =
$dom->appendChild(new DOMElement('information')); $element_auth = new
DOMElement('author', 'FILE to XML coded by LM - huynhhaihuynh@gmail');
$element_version = new DOMElement('version', 'File2XML v1.0'); $element_date = new DOMElement('date_created', $date); $element_file = new DOMElement('file_convert', count($this->file_in)); $element_conv = $element->appendChild(new DOMElement('main'));
$is=0; $total = array(); foreach ($this->file_in as $fl) { $is++; $fl_full
= $this->folder_read.$fl; $handle = fopen($fl_full , "r"); while (!feof($handle)) {
$buffer = fgets($handle, 4096); $total[$is].=$buffer; } fclose($handle);
$element_conv_file_details = $element_conv->appendChild(new DOMElement('file'));
$element_conv_file_name = new DOMElement('file_name', $fl); $element_conv_file_size
= new DOMElement('file_size', @filesize($fl_full)." bytes"); $element_conv_file_data = new DOMElement('file_data', base64_encode($total[$is]));
>appendChild($element_conv_file_name);
>appendChild( $element_conv_file_size);
$element_conv_file_details->appendChild( $element_conv_file_data); echo "Writing file: $fl<br>"; }
>appendChild($element_auth); >appendChild($element_version);
>appendChild($element_date); >appendChild($element_file);
$element->appendChild($element_conv); $con_save =
$dom->save($this->folder_save."/".$this->xml_write); echo "================================<br>"; echo "DONE! Your files are writen successful: ".filesize($this->folder_save."/".$this->xml_write)." bytes"; // End } else die("No list file found"); } } ?>
usage.php
view plainprint?
1 <?
2 /*===============================
3 - Class: File2XML
4 - Author: Huynh Hai Huynh
5 - Email: Huynhhaihuynh@gmail.com
6 - Website: http://www.php.net.vn
7 - Usage.php
8 ===============================*/
9 require_once("class_file2xml.php");
10 $k = new file2xml;
11
12 $k->folder_read = "./"; // Folder ctontains file need encode
13
14 $k->folder_save = "./"; // Folder save XMLoutput file
15
16 $k->xml_write = "dump_file.xml"; // File name XML
17
18 $k->time_limit = "600"; // Time execution
19
20 $k->size_limit = "500000000"; // LIMIT bytes for per file
21
22 $k->ext_read = array("ico"); // Null is file without extension
23 /*
24 array("doc","mpg","txt","php","gif");
25 EG: file no exteions key in array is NULL
26 array("NULL","mpg","txt","php","gif");
27
28 */
Trang 629
30 echo $k->listfile();
31
32 ?>
<? /*=============================== - Class: File2XML - Author: Huynh Hai Huynh - Email: Huynhhaihuynh@gmail.com - Website: http://www.php.net.vn - Usage.php
===============================*/ require_once("class_file2xml.php"); $k = new file2xml;
$k->folder_read = "./"; // Folder ctontains file need encode $k->folder_save = "./"; // Folder save XMLoutput file $k->xml_write = "dump_file.xml"; // File name XML $k->time_limit = "600"; // Time execution $k->size_limit = "500000000"; // LIMIT bytes for per file $k->ext_read = array("ico"); // Null is file without extension /* array("doc","mpg","txt","php","gif"); EG: file no exteions key in array
is NULL array("NULL","mpg","txt","php","gif"); */ echo $k->listfile(); ?>
http://www.phpclasses.org/browse/package/3363.html