This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | /** |
||
3 | * @package fwolflib |
||
4 | * @subpackage class |
||
5 | * @copyright Copyright 2003-2009, Fwolf |
||
6 | * @author Fwolf <[email protected]> |
||
7 | * @since 2009-12-22 |
||
8 | */ |
||
9 | |||
10 | |||
11 | require_once(dirname(__FILE__) . '/fwolflib.php'); |
||
12 | |||
13 | |||
14 | /** |
||
15 | * @package fwolflib |
||
16 | * @subpackage class |
||
17 | * @copyright Copyright 2003-2009, Fwolf |
||
18 | * @author Fwolf <[email protected]> |
||
19 | * @since 2009-12-22 |
||
20 | * @link http://www.phplamp.org/2008/06/php-to-excel-clas/ |
||
21 | */ |
||
22 | class Excel extends Fwolflib { |
||
0 ignored issues
–
show
|
|||
23 | |||
24 | /** |
||
25 | * Array of row in xml |
||
26 | * @var array |
||
27 | */ |
||
28 | protected $aRow = array(); |
||
29 | |||
30 | /** |
||
31 | * Footer of excel xml |
||
32 | * @var string |
||
33 | */ |
||
34 | protected $sFooter = "</Workbook>"; |
||
35 | |||
36 | /** |
||
37 | * Header of excel xml |
||
38 | * @var string |
||
39 | */ |
||
40 | protected $sHeader = '<?xml version="1.0" encoding="utf-8"?> |
||
41 | <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" |
||
42 | xmlns:x="urn:schemas-microsoft-com:office:excel" |
||
43 | xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" |
||
44 | xmlns:html="http://www.w3.org/TR/REC-html40"> |
||
45 | '; |
||
46 | |||
47 | /** |
||
48 | * Title of sheet |
||
49 | * @var string |
||
50 | */ |
||
51 | public $sSheetTitle = 'Sheet1'; |
||
52 | |||
53 | |||
54 | /** |
||
55 | * Set a single row(add mode) |
||
56 | * |
||
57 | * @param array $ar 1-dimensional array |
||
58 | */ |
||
59 | protected function SetRow($ar) { |
||
60 | $s_cell = ''; |
||
61 | |||
62 | if (!empty($ar)) { |
||
63 | foreach ($ar as $v) { |
||
64 | // Attention: data type |
||
65 | if(is_numeric($v)) { |
||
66 | $v = strval($v); |
||
67 | // First letter is '0' ? |
||
68 | if(0 == $v{0}) { |
||
69 | $s_cells.= '<Cell><Data ss:Type="string">' . $v . '</Data></Cell> |
||
70 | '; |
||
71 | } else { |
||
72 | $s_cell .= '<Cell><Data ss:Type="number">' . $v . '</Data></Cell> |
||
73 | '; |
||
74 | } |
||
75 | } else { |
||
76 | $s_cell .= '<Cell><Data ss:Type="string">' . $v . '</Data></Cell> |
||
77 | '; |
||
78 | } |
||
79 | } |
||
80 | $this->aRow[] = "<Row>\n$s_cell</Row>\n"; |
||
81 | } |
||
82 | } // end of func SetRow |
||
83 | |||
84 | |||
85 | /** |
||
86 | * Set data rows, multi row, clean mode |
||
87 | * |
||
88 | * @param array $ar 2-dimensional array |
||
89 | */ |
||
90 | public function SetRows ($ar) { |
||
91 | if (!empty($ar)) |
||
92 | foreach ($ar as $v) |
||
93 | $this->SetRow($v); |
||
94 | } // end of func SetRows |
||
95 | |||
96 | |||
97 | /** |
||
98 | * Set the worksheet title |
||
99 | * |
||
100 | * Checks the string for not allowed characters (:\/?*), |
||
101 | * cuts it to maximum 31 characters and set the title. Damn |
||
102 | * why are not-allowed chars nowhere to be found? Windows |
||
103 | * help's no help... |
||
104 | * |
||
105 | * @param string $title |
||
106 | */ |
||
107 | public function SetSheetTitle($title) { |
||
108 | // Strip special chars |
||
109 | $title = str_replace ( |
||
110 | array(':', '\\', '/', '?', '*'), |
||
111 | '', $title); |
||
112 | |||
113 | // Cut it to the allowed length |
||
114 | $title = substr($title, 0, 31); |
||
115 | |||
116 | $this->sSheetTitle = $title; |
||
117 | } // end of func SetSheetTitle |
||
118 | |||
119 | |||
120 | /** |
||
121 | * Output the excel file |
||
122 | * |
||
123 | * @param string $fn Filename without '.xls' |
||
124 | */ |
||
125 | public function Output($fn) { |
||
126 | // Set header |
||
127 | header('Content-Type: application/vnd.ms-excel; charset=utf-8'); |
||
128 | header('Content-Disposition: inline; filename="' |
||
129 | . $fn . '.xls"'); |
||
130 | |||
131 | |||
132 | echo ($this->sHeader); |
||
133 | echo '<Worksheet ss:Name="' |
||
134 | . $this->sSheetTitle |
||
135 | . '"> |
||
136 | <Table> |
||
137 | '; |
||
138 | echo '<Column ss:Index="1" ss:AutoFitWidth="0" ss:Width="110"/> |
||
139 | '; |
||
140 | echo implode("\n", $this->aRow); |
||
141 | echo '</Table> |
||
142 | </Worksheet> |
||
143 | '; |
||
144 | echo $this->sFooter; |
||
145 | } |
||
146 | |||
147 | } // end of class Excel |
||
148 | |||
149 | /* |
||
150 | // Usage |
||
151 | // Need high version of microsoft office |
||
152 | |||
153 | $ar = array ( |
||
154 | array ('列1', '列2', '列3列3列3', '123456'), |
||
155 | ); |
||
156 | $xls = new Excel; |
||
157 | $xls->SetRows($ar); |
||
158 | $xls->Output('test'); |
||
159 | */ |
||
160 | |||
161 | ?> |
||
162 |
This class, trait or interface has been deprecated. The supplier of the file has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the type will be removed from the class and what other constant to use instead.