@@ -129,41 +129,41 @@ discard block |
||
129 | 129 | } |
130 | 130 | foreach ($option as $k => $v) { |
131 | 131 | switch ($k) { |
132 | - case 'encoding': |
|
133 | - switch ($v) { |
|
134 | - case 'utf8': |
|
135 | - case 'ucs4_string': |
|
136 | - case 'ucs4_array': |
|
137 | - $this->_api_encoding = $v; |
|
132 | + case 'encoding': |
|
133 | + switch ($v) { |
|
134 | + case 'utf8': |
|
135 | + case 'ucs4_string': |
|
136 | + case 'ucs4_array': |
|
137 | + $this->_api_encoding = $v; |
|
138 | + break; |
|
139 | + default: |
|
140 | + $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k); |
|
141 | + return false; |
|
142 | + } |
|
143 | + break; |
|
144 | + case 'overlong': |
|
145 | + $this->_allow_overlong = ($v) ? true : false; |
|
146 | + break; |
|
147 | + case 'strict': |
|
148 | + $this->_strict_mode = ($v) ? true : false; |
|
149 | + break; |
|
150 | + case 'idn_version': |
|
151 | + if (in_array($v, array('2003', '2008'))) { |
|
152 | + $this->_idn_version = $v; |
|
153 | + } else { |
|
154 | + $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k); |
|
155 | + } |
|
156 | + break; |
|
157 | + case 'encode_german_sz': // Deprecated |
|
158 | + if (!$v) { |
|
159 | + self::$NP['replacemaps'][0xDF] = array(0x73, 0x73); |
|
160 | + } else { |
|
161 | + unset(self::$NP['replacemaps'][0xDF]); |
|
162 | + } |
|
138 | 163 | break; |
139 | 164 | default: |
140 | - $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k); |
|
165 | + $this->_error('Set Parameter: Unknown option '.$k); |
|
141 | 166 | return false; |
142 | - } |
|
143 | - break; |
|
144 | - case 'overlong': |
|
145 | - $this->_allow_overlong = ($v) ? true : false; |
|
146 | - break; |
|
147 | - case 'strict': |
|
148 | - $this->_strict_mode = ($v) ? true : false; |
|
149 | - break; |
|
150 | - case 'idn_version': |
|
151 | - if (in_array($v, array('2003', '2008'))) { |
|
152 | - $this->_idn_version = $v; |
|
153 | - } else { |
|
154 | - $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k); |
|
155 | - } |
|
156 | - break; |
|
157 | - case 'encode_german_sz': // Deprecated |
|
158 | - if (!$v) { |
|
159 | - self::$NP['replacemaps'][0xDF] = array(0x73, 0x73); |
|
160 | - } else { |
|
161 | - unset(self::$NP['replacemaps'][0xDF]); |
|
162 | - } |
|
163 | - break; |
|
164 | - default: |
|
165 | - $this->_error('Set Parameter: Unknown option '.$k); |
|
166 | - return false; |
|
167 | 167 | } |
168 | 168 | } |
169 | 169 | return true; |
@@ -180,13 +180,13 @@ discard block |
||
180 | 180 | // Optionally set |
181 | 181 | if ($one_time_encoding) { |
182 | 182 | switch ($one_time_encoding) { |
183 | - case 'utf8': |
|
184 | - case 'ucs4_string': |
|
185 | - case 'ucs4_array': |
|
186 | - break; |
|
187 | - default: |
|
188 | - $this->_error('Unknown encoding '.$one_time_encoding); |
|
189 | - return false; |
|
183 | + case 'utf8': |
|
184 | + case 'ucs4_string': |
|
185 | + case 'ucs4_array': |
|
186 | + break; |
|
187 | + default: |
|
188 | + $this->_error('Unknown encoding '.$one_time_encoding); |
|
189 | + return false; |
|
190 | 190 | } |
191 | 191 | } |
192 | 192 | // Make sure to drop any newline characters around |
@@ -255,18 +255,18 @@ discard block |
||
255 | 255 | // The output is UTF-8 by default, other output formats need conversion here |
256 | 256 | // If one time encoding is given, use this, else the objects property |
257 | 257 | switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) { |
258 | - case 'utf8': |
|
259 | - return $return; |
|
260 | - break; |
|
261 | - case 'ucs4_string': |
|
262 | - return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return)); |
|
263 | - break; |
|
264 | - case 'ucs4_array': |
|
265 | - return $this->_utf8_to_ucs4($return); |
|
266 | - break; |
|
267 | - default: |
|
268 | - $this->_error('Unsupported output format'); |
|
269 | - return false; |
|
258 | + case 'utf8': |
|
259 | + return $return; |
|
260 | + break; |
|
261 | + case 'ucs4_string': |
|
262 | + return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return)); |
|
263 | + break; |
|
264 | + case 'ucs4_array': |
|
265 | + return $this->_utf8_to_ucs4($return); |
|
266 | + break; |
|
267 | + default: |
|
268 | + $this->_error('Unsupported output format'); |
|
269 | + return false; |
|
270 | 270 | } |
271 | 271 | } |
272 | 272 | |
@@ -281,16 +281,16 @@ discard block |
||
281 | 281 | // Forcing conversion of input to UCS4 array |
282 | 282 | // If one time encoding is given, use this, else the objects property |
283 | 283 | switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) { |
284 | - case 'utf8': |
|
285 | - $decoded = $this->_utf8_to_ucs4($decoded); |
|
286 | - break; |
|
287 | - case 'ucs4_string': |
|
288 | - $decoded = $this->_ucs4_string_to_ucs4($decoded); |
|
289 | - case 'ucs4_array': |
|
290 | - break; |
|
291 | - default: |
|
292 | - $this->_error('Unsupported input format: '.($one_time_encoding ? $one_time_encoding : $this->_api_encoding)); |
|
293 | - return false; |
|
284 | + case 'utf8': |
|
285 | + $decoded = $this->_utf8_to_ucs4($decoded); |
|
286 | + break; |
|
287 | + case 'ucs4_string': |
|
288 | + $decoded = $this->_ucs4_string_to_ucs4($decoded); |
|
289 | + case 'ucs4_array': |
|
290 | + break; |
|
291 | + default: |
|
292 | + $this->_error('Unsupported input format: '.($one_time_encoding ? $one_time_encoding : $this->_api_encoding)); |
|
293 | + return false; |
|
294 | 294 | } |
295 | 295 | |
296 | 296 | // No input, no output, what else did you expect? |
@@ -303,35 +303,35 @@ discard block |
||
303 | 303 | foreach ($decoded as $k => $v) { |
304 | 304 | // Make sure to use just the plain dot |
305 | 305 | switch($v) { |
306 | - case 0x3002: |
|
307 | - case 0xFF0E: |
|
308 | - case 0xFF61: |
|
309 | - $decoded[$k] = 0x2E; |
|
310 | - // Right, no break here, the above are converted to dots anyway |
|
311 | - // Stumbling across an anchoring character |
|
312 | - case 0x2E: |
|
313 | - case 0x2F: |
|
314 | - case 0x3A: |
|
315 | - case 0x3F: |
|
316 | - case 0x40: |
|
317 | - // Neither email addresses nor URLs allowed in strict mode |
|
318 | - if ($this->_strict_mode) { |
|
319 | - $this->_error('Neither email addresses nor URLs are allowed in strict mode.'); |
|
320 | - return false; |
|
321 | - } else { |
|
322 | - // Skip first char |
|
323 | - if ($k) { |
|
324 | - $encoded = ''; |
|
325 | - $encoded = $this->_encode(array_slice($decoded, $last_begin, (($k)-$last_begin))); |
|
326 | - if ($encoded) { |
|
327 | - $output .= $encoded; |
|
328 | - } else { |
|
329 | - $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($k)-$last_begin))); |
|
306 | + case 0x3002: |
|
307 | + case 0xFF0E: |
|
308 | + case 0xFF61: |
|
309 | + $decoded[$k] = 0x2E; |
|
310 | + // Right, no break here, the above are converted to dots anyway |
|
311 | + // Stumbling across an anchoring character |
|
312 | + case 0x2E: |
|
313 | + case 0x2F: |
|
314 | + case 0x3A: |
|
315 | + case 0x3F: |
|
316 | + case 0x40: |
|
317 | + // Neither email addresses nor URLs allowed in strict mode |
|
318 | + if ($this->_strict_mode) { |
|
319 | + $this->_error('Neither email addresses nor URLs are allowed in strict mode.'); |
|
320 | + return false; |
|
321 | + } else { |
|
322 | + // Skip first char |
|
323 | + if ($k) { |
|
324 | + $encoded = ''; |
|
325 | + $encoded = $this->_encode(array_slice($decoded, $last_begin, (($k)-$last_begin))); |
|
326 | + if ($encoded) { |
|
327 | + $output .= $encoded; |
|
328 | + } else { |
|
329 | + $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($k)-$last_begin))); |
|
330 | + } |
|
331 | + $output .= chr($decoded[$k]); |
|
330 | 332 | } |
331 | - $output .= chr($decoded[$k]); |
|
333 | + $last_begin = $k + 1; |
|
332 | 334 | } |
333 | - $last_begin = $k + 1; |
|
334 | - } |
|
335 | 335 | } |
336 | 336 | } |
337 | 337 | // Catch the rest of the string |