1: <?php
2:
3: 4: 5:
6: class HTMLPurifier_URIScheme_ftp extends HTMLPurifier_URIScheme {
7:
8: public $default_port = 21;
9: public $browsable = true;
10: public $hierarchical = true;
11:
12: public function doValidate(&$uri, $config, $context) {
13: $uri->query = null;
14:
15:
16: $semicolon_pos = strrpos($uri->path, ';');
17: if ($semicolon_pos !== false) {
18: $type = substr($uri->path, $semicolon_pos + 1);
19: $uri->path = substr($uri->path, 0, $semicolon_pos);
20: $type_ret = '';
21: if (strpos($type, '=') !== false) {
22:
23: list($key, $typecode) = explode('=', $type, 2);
24: if ($key !== 'type') {
25:
26: $uri->path .= '%3B' . $type;
27: } elseif ($typecode === 'a' || $typecode === 'i' || $typecode === 'd') {
28: $type_ret = ";type=$typecode";
29: }
30: } else {
31: $uri->path .= '%3B' . $type;
32: }
33: $uri->path = str_replace(';', '%3B', $uri->path);
34: $uri->path .= $type_ret;
35: }
36:
37: return true;
38: }
39:
40: }
41:
42:
43: