1: | <?php
|
2: |
|
3: |
|
4: |
|
5: | |
6: | |
7: | |
8: | |
9: |
|
10: | class HTMLPurifier_AttrTransform_TargetBlank extends HTMLPurifier_AttrTransform
|
11: | {
|
12: | |
13: | |
14: |
|
15: | private $parser;
|
16: |
|
17: | public function __construct()
|
18: | {
|
19: | $this->parser = new HTMLPurifier_URIParser();
|
20: | }
|
21: |
|
22: | |
23: | |
24: | |
25: | |
26: | |
27: |
|
28: | public function transform($attr, $config, $context)
|
29: | {
|
30: | if (!isset($attr['href'])) {
|
31: | return $attr;
|
32: | }
|
33: |
|
34: |
|
35: | $url = $this->parser->parse($attr['href']);
|
36: | $scheme = $url->getSchemeObj($config, $context);
|
37: |
|
38: | if ($scheme->browsable && !$url->isBenign($config, $context)) {
|
39: | $attr['target'] = '_blank';
|
40: | }
|
41: | return $attr;
|
42: | }
|
43: | }
|
44: |
|
45: |
|
46: | |