Completed
Push — master ( 80f547...a9257d )
by Gilles
02:48
created
src/PHPHtmlParser/Selector.php 2 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -47,7 +47,7 @@
 block discarded – undo
47 47
      * node object.
48 48
      *
49 49
      * @param AbstractNode $node
50
-     * @return array|Collection
50
+     * @return Collection
51 51
      */
52 52
     public function find(AbstractNode $node)
53 53
     {
Please login to merge, or discard this patch.
Indentation   +355 added lines, -355 removed lines patch added patch discarded remove patch
@@ -13,359 +13,359 @@
 block discarded – undo
13 13
 class Selector
14 14
 {
15 15
 
16
-    /**
17
-     * Pattern of CSS selectors, modified from 'mootools'
18
-     *
19
-     * @var string
20
-     */
21
-    protected $pattern = "/([\w-:\*>]*)(?:\#([\w-]+)|\.([\w-]+))?(?:\[@?(!?[\w-:]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is";
22
-
23
-    protected $selectors = [];
24
-
25
-    /**
26
-     * Constructs with the selector string
27
-     *
28
-     * @param string $selector
29
-     */
30
-    public function __construct($selector)
31
-    {
32
-        $this->parseSelectorString($selector);
33
-    }
34
-
35
-    /**
36
-     * Returns the selectors that where found in __construct
37
-     *
38
-     * @return array
39
-     */
40
-    public function getSelectors()
41
-    {
42
-        return $this->selectors;
43
-    }
44
-
45
-    /**
46
-     * Attempts to find the selectors starting from the given
47
-     * node object.
48
-     *
49
-     * @param AbstractNode $node
50
-     * @return array|Collection
51
-     */
52
-    public function find(AbstractNode $node)
53
-    {
54
-        $results = new Collection;
55
-        foreach ($this->selectors as $selector) {
56
-            $nodes = [$node];
57
-            if (count($selector) == 0) {
58
-                continue;
59
-            }
60
-
61
-            $options = [];
62
-            foreach ($selector as $rule) {
63
-                if ($rule['alterNext']) {
64
-                    $options[] = $this->alterNext($rule);
65
-                    continue;
66
-                }
67
-                $nodes = $this->seek($nodes, $rule, $options);
68
-                // clear the options
69
-                $options = [];
70
-            }
71
-
72
-            // this is the final set of nodes
73
-            foreach ($nodes as $result) {
74
-                $results[] = $result;
75
-            }
76
-        }
77
-
78
-        return $results;
79
-    }
80
-
81
-    /**
82
-     * Parses the selector string
83
-     *
84
-     * @param string $selector
85
-     */
86
-    protected function parseSelectorString($selector)
87
-    {
88
-        $matches = [];
89
-        preg_match_all($this->pattern, trim($selector).' ', $matches, PREG_SET_ORDER);
90
-
91
-        // skip tbody
92
-        $result = [];
93
-        foreach ($matches as $match) {
94
-            // default values
95
-            $tag       = strtolower(trim($match[1]));
96
-            $operator  = '=';
97
-            $key       = null;
98
-            $value     = null;
99
-            $noKey     = false;
100
-            $alterNext = false;
101
-
102
-            // check for elements that alter the behavior of the next element
103
-            if ($tag == '>') {
104
-                $alterNext = true;
105
-            }
106
-
107
-            // check for id selector
108
-            if ( ! empty($match[2])) {
109
-                $key   = 'id';
110
-                $value = $match[2];
111
-            }
112
-
113
-            // check for class selector
114
-            if ( ! empty($match[3])) {
115
-                $key   = 'class';
116
-                $value = $match[3];
117
-            }
118
-
119
-            // and final attribute selector
120
-            if ( ! empty($match[4])) {
121
-                $key = strtolower($match[4]);
122
-            }
123
-            if ( ! empty($match[5])) {
124
-                $operator = $match[5];
125
-            }
126
-            if ( ! empty($match[6])) {
127
-                $value = $match[6];
128
-            }
129
-
130
-            // check for elements that do not have a specified attribute
131
-            if (isset($key[0]) && $key[0] == '!') {
132
-                $key   = substr($key, 1);
133
-                $noKey = true;
134
-            }
135
-
136
-            $result[] = [
137
-                'tag'       => $tag,
138
-                'key'       => $key,
139
-                'value'     => $value,
140
-                'operator'  => $operator,
141
-                'noKey'     => $noKey,
142
-                'alterNext' => $alterNext,
143
-            ];
144
-            if (trim($match[7]) == ',') {
145
-                $this->selectors[] = $result;
146
-                $result            = [];
147
-            }
148
-        }
149
-
150
-        // save last results
151
-        if (count($result) > 0) {
152
-            $this->selectors[] = $result;
153
-        }
154
-    }
155
-
156
-    /**
157
-     * Attempts to find all children that match the rule
158
-     * given.
159
-     *
160
-     * @param array $nodes
161
-     * @param array $rule
162
-     * @param array $options
163
-     * @return array
164
-     * @recursive
165
-     */
166
-    protected function seek(array $nodes, array $rule, array $options)
167
-    {
168
-        // XPath index
169
-        if (count($rule['tag']) > 0 &&
170
-            count($rule['key']) > 0 &&
171
-            is_numeric($rule['key'])
172
-        ) {
173
-            $count = 0;
174
-            /** @var AbstractNode $node */
175
-            foreach ($nodes as $node) {
176
-                if ($rule['tag'] == '*' ||
177
-                    $rule['tag'] == $node->getTag()->name()) {
178
-                    ++$count;
179
-                    if ($count == $rule['key']) {
180
-                        // found the node we wanted
181
-                        return [$node];
182
-                    }
183
-                }
184
-            }
185
-
186
-            return [];
187
-        }
188
-
189
-        $options = $this->flattenOptions($options);
190
-
191
-        $return = [];
192
-        /** @var AbstractNode $node */
193
-        foreach ($nodes as $node) {
194
-            // check if we are a leaf
195
-            if ( ! $node->hasChildren()) {
196
-                continue;
197
-            }
198
-
199
-            $children = [];
200
-            $child    = $node->firstChild();
201
-            while ( ! is_null($child)) {
202
-                // wild card, grab all
203
-                if ($rule['tag'] == '*' && is_null($rule['key'])) {
204
-                    $return[] = $child;
205
-                    try {
206
-                        $child = $node->nextChild($child->id());
207
-                    } catch (ChildNotFoundException $e) {
208
-                        // no more children
209
-                        $child = null;
210
-                    }
211
-                    continue;
212
-                }
213
-
214
-                $pass = true;
215
-                // check tag
216
-                if ( ! empty($rule['tag']) && $rule['tag'] != $child->getTag()->name() &&
217
-                    $rule['tag'] != '*'
218
-                ) {
219
-                    // child failed tag check
220
-                    $pass = false;
221
-                }
222
-
223
-                // check key
224
-                if ($pass && ! is_null($rule['key'])) {
225
-                    if ($rule['noKey']) {
226
-                        if ( ! is_null($child->getAttribute($rule['key']))) {
227
-                            $pass = false;
228
-                        }
229
-                    } else {
230
-                        if ($rule['key'] != 'plaintext' &&
231
-                            is_null($child->getAttribute($rule['key']))
232
-                        ) {
233
-                            $pass = false;
234
-                        }
235
-                    }
236
-                }
237
-
238
-                // compare values
239
-                if ($pass && ! is_null($rule['key']) &&
240
-                    ! is_null($rule['value']) && $rule['value'] != '*'
241
-                ) {
242
-                    if ($rule['key'] == 'plaintext') {
243
-                        // plaintext search
244
-                        $nodeValue = $child->text();
245
-                    } else {
246
-                        // normal search
247
-                        $nodeValue = $child->getAttribute($rule['key']);
248
-                    }
249
-
250
-                    $check = $this->match($rule['operator'], $rule['value'], $nodeValue);
251
-
252
-                    // handle multiple classes
253
-                    if ( ! $check && $rule['key'] == 'class') {
254
-                        $childClasses = explode(' ', $child->getAttribute('class'));
255
-                        foreach ($childClasses as $class) {
256
-                            if ( ! empty($class)) {
257
-                                $check = $this->match($rule['operator'], $rule['value'], $class);
258
-                            }
259
-                            if ($check) {
260
-                                break;
261
-                            }
262
-                        }
263
-                    }
264
-
265
-                    if ( ! $check) {
266
-                        $pass = false;
267
-                    }
268
-                }
269
-
270
-                if ($pass) {
271
-                    // it passed all checks
272
-                    $return[] = $child;
273
-                } else {
274
-                    // this child failed to be matched
275
-                    if ($child->hasChildren()) {
276
-                        // we still want to check its children
277
-                        $children[] = $child;
278
-                    }
279
-                }
280
-
281
-                try {
282
-                    // get next child
283
-                    $child = $node->nextChild($child->id());
284
-                } catch (ChildNotFoundException $e) {
285
-                    // no more children
286
-                    $child = null;
287
-                }
288
-            }
289
-
290
-            if (( ! isset($options['checkGrandChildren']) ||
291
-                    $options['checkGrandChildren'])
292
-                && count($children) > 0
293
-            ) {
294
-                // we have children that failed but are not leaves.
295
-                $matches = $this->seek($children, $rule, $options);
296
-                foreach ($matches as $match) {
297
-                    $return[] = $match;
298
-                }
299
-            }
300
-        }
301
-
302
-        return $return;
303
-    }
304
-
305
-    /**
306
-     * Attempts to match the given arguments with the given operator.
307
-     *
308
-     * @param string $operator
309
-     * @param string $pattern
310
-     * @param string $value
311
-     * @return bool
312
-     */
313
-    protected function match($operator, $pattern, $value)
314
-    {
315
-        $value   = strtolower($value);
316
-        $pattern = strtolower($pattern);
317
-        switch ($operator) {
318
-            case '=':
319
-                return $value === $pattern;
320
-            case '!=':
321
-                return $value !== $pattern;
322
-            case '^=':
323
-                return preg_match('/^'.preg_quote($pattern, '/').'/', $value);
324
-            case '$=':
325
-                return preg_match('/'.preg_quote($pattern, '/').'$/', $value);
326
-            case '*=':
327
-                if ($pattern[0] == '/') {
328
-                    return preg_match($pattern, $value);
329
-                }
330
-
331
-                return preg_match("/".$pattern."/i", $value);
332
-        }
333
-
334
-        return false;
335
-    }
336
-
337
-    /**
338
-     * Attempts to figure out what the alteration will be for
339
-     * the next element.
340
-     *
341
-     * @param array $rule
342
-     * @return array
343
-     */
344
-    protected function alterNext($rule)
345
-    {
346
-        $options = [];
347
-        if ($rule['tag'] == '>') {
348
-            $options['checkGrandChildren'] = false;
349
-        }
350
-
351
-        return $options;
352
-    }
353
-
354
-    /**
355
-     * Flattens the option array.
356
-     *
357
-     * @param array $optionsArray
358
-     * @return array
359
-     */
360
-    protected function flattenOptions(array $optionsArray)
361
-    {
362
-        $options = [];
363
-        foreach ($optionsArray as $optionArray) {
364
-            foreach ($optionArray as $key => $option) {
365
-                $options[$key] = $option;
366
-            }
367
-        }
368
-
369
-        return $options;
370
-    }
16
+	/**
17
+	 * Pattern of CSS selectors, modified from 'mootools'
18
+	 *
19
+	 * @var string
20
+	 */
21
+	protected $pattern = "/([\w-:\*>]*)(?:\#([\w-]+)|\.([\w-]+))?(?:\[@?(!?[\w-:]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is";
22
+
23
+	protected $selectors = [];
24
+
25
+	/**
26
+	 * Constructs with the selector string
27
+	 *
28
+	 * @param string $selector
29
+	 */
30
+	public function __construct($selector)
31
+	{
32
+		$this->parseSelectorString($selector);
33
+	}
34
+
35
+	/**
36
+	 * Returns the selectors that where found in __construct
37
+	 *
38
+	 * @return array
39
+	 */
40
+	public function getSelectors()
41
+	{
42
+		return $this->selectors;
43
+	}
44
+
45
+	/**
46
+	 * Attempts to find the selectors starting from the given
47
+	 * node object.
48
+	 *
49
+	 * @param AbstractNode $node
50
+	 * @return array|Collection
51
+	 */
52
+	public function find(AbstractNode $node)
53
+	{
54
+		$results = new Collection;
55
+		foreach ($this->selectors as $selector) {
56
+			$nodes = [$node];
57
+			if (count($selector) == 0) {
58
+				continue;
59
+			}
60
+
61
+			$options = [];
62
+			foreach ($selector as $rule) {
63
+				if ($rule['alterNext']) {
64
+					$options[] = $this->alterNext($rule);
65
+					continue;
66
+				}
67
+				$nodes = $this->seek($nodes, $rule, $options);
68
+				// clear the options
69
+				$options = [];
70
+			}
71
+
72
+			// this is the final set of nodes
73
+			foreach ($nodes as $result) {
74
+				$results[] = $result;
75
+			}
76
+		}
77
+
78
+		return $results;
79
+	}
80
+
81
+	/**
82
+	 * Parses the selector string
83
+	 *
84
+	 * @param string $selector
85
+	 */
86
+	protected function parseSelectorString($selector)
87
+	{
88
+		$matches = [];
89
+		preg_match_all($this->pattern, trim($selector).' ', $matches, PREG_SET_ORDER);
90
+
91
+		// skip tbody
92
+		$result = [];
93
+		foreach ($matches as $match) {
94
+			// default values
95
+			$tag       = strtolower(trim($match[1]));
96
+			$operator  = '=';
97
+			$key       = null;
98
+			$value     = null;
99
+			$noKey     = false;
100
+			$alterNext = false;
101
+
102
+			// check for elements that alter the behavior of the next element
103
+			if ($tag == '>') {
104
+				$alterNext = true;
105
+			}
106
+
107
+			// check for id selector
108
+			if ( ! empty($match[2])) {
109
+				$key   = 'id';
110
+				$value = $match[2];
111
+			}
112
+
113
+			// check for class selector
114
+			if ( ! empty($match[3])) {
115
+				$key   = 'class';
116
+				$value = $match[3];
117
+			}
118
+
119
+			// and final attribute selector
120
+			if ( ! empty($match[4])) {
121
+				$key = strtolower($match[4]);
122
+			}
123
+			if ( ! empty($match[5])) {
124
+				$operator = $match[5];
125
+			}
126
+			if ( ! empty($match[6])) {
127
+				$value = $match[6];
128
+			}
129
+
130
+			// check for elements that do not have a specified attribute
131
+			if (isset($key[0]) && $key[0] == '!') {
132
+				$key   = substr($key, 1);
133
+				$noKey = true;
134
+			}
135
+
136
+			$result[] = [
137
+				'tag'       => $tag,
138
+				'key'       => $key,
139
+				'value'     => $value,
140
+				'operator'  => $operator,
141
+				'noKey'     => $noKey,
142
+				'alterNext' => $alterNext,
143
+			];
144
+			if (trim($match[7]) == ',') {
145
+				$this->selectors[] = $result;
146
+				$result            = [];
147
+			}
148
+		}
149
+
150
+		// save last results
151
+		if (count($result) > 0) {
152
+			$this->selectors[] = $result;
153
+		}
154
+	}
155
+
156
+	/**
157
+	 * Attempts to find all children that match the rule
158
+	 * given.
159
+	 *
160
+	 * @param array $nodes
161
+	 * @param array $rule
162
+	 * @param array $options
163
+	 * @return array
164
+	 * @recursive
165
+	 */
166
+	protected function seek(array $nodes, array $rule, array $options)
167
+	{
168
+		// XPath index
169
+		if (count($rule['tag']) > 0 &&
170
+			count($rule['key']) > 0 &&
171
+			is_numeric($rule['key'])
172
+		) {
173
+			$count = 0;
174
+			/** @var AbstractNode $node */
175
+			foreach ($nodes as $node) {
176
+				if ($rule['tag'] == '*' ||
177
+					$rule['tag'] == $node->getTag()->name()) {
178
+					++$count;
179
+					if ($count == $rule['key']) {
180
+						// found the node we wanted
181
+						return [$node];
182
+					}
183
+				}
184
+			}
185
+
186
+			return [];
187
+		}
188
+
189
+		$options = $this->flattenOptions($options);
190
+
191
+		$return = [];
192
+		/** @var AbstractNode $node */
193
+		foreach ($nodes as $node) {
194
+			// check if we are a leaf
195
+			if ( ! $node->hasChildren()) {
196
+				continue;
197
+			}
198
+
199
+			$children = [];
200
+			$child    = $node->firstChild();
201
+			while ( ! is_null($child)) {
202
+				// wild card, grab all
203
+				if ($rule['tag'] == '*' && is_null($rule['key'])) {
204
+					$return[] = $child;
205
+					try {
206
+						$child = $node->nextChild($child->id());
207
+					} catch (ChildNotFoundException $e) {
208
+						// no more children
209
+						$child = null;
210
+					}
211
+					continue;
212
+				}
213
+
214
+				$pass = true;
215
+				// check tag
216
+				if ( ! empty($rule['tag']) && $rule['tag'] != $child->getTag()->name() &&
217
+					$rule['tag'] != '*'
218
+				) {
219
+					// child failed tag check
220
+					$pass = false;
221
+				}
222
+
223
+				// check key
224
+				if ($pass && ! is_null($rule['key'])) {
225
+					if ($rule['noKey']) {
226
+						if ( ! is_null($child->getAttribute($rule['key']))) {
227
+							$pass = false;
228
+						}
229
+					} else {
230
+						if ($rule['key'] != 'plaintext' &&
231
+							is_null($child->getAttribute($rule['key']))
232
+						) {
233
+							$pass = false;
234
+						}
235
+					}
236
+				}
237
+
238
+				// compare values
239
+				if ($pass && ! is_null($rule['key']) &&
240
+					! is_null($rule['value']) && $rule['value'] != '*'
241
+				) {
242
+					if ($rule['key'] == 'plaintext') {
243
+						// plaintext search
244
+						$nodeValue = $child->text();
245
+					} else {
246
+						// normal search
247
+						$nodeValue = $child->getAttribute($rule['key']);
248
+					}
249
+
250
+					$check = $this->match($rule['operator'], $rule['value'], $nodeValue);
251
+
252
+					// handle multiple classes
253
+					if ( ! $check && $rule['key'] == 'class') {
254
+						$childClasses = explode(' ', $child->getAttribute('class'));
255
+						foreach ($childClasses as $class) {
256
+							if ( ! empty($class)) {
257
+								$check = $this->match($rule['operator'], $rule['value'], $class);
258
+							}
259
+							if ($check) {
260
+								break;
261
+							}
262
+						}
263
+					}
264
+
265
+					if ( ! $check) {
266
+						$pass = false;
267
+					}
268
+				}
269
+
270
+				if ($pass) {
271
+					// it passed all checks
272
+					$return[] = $child;
273
+				} else {
274
+					// this child failed to be matched
275
+					if ($child->hasChildren()) {
276
+						// we still want to check its children
277
+						$children[] = $child;
278
+					}
279
+				}
280
+
281
+				try {
282
+					// get next child
283
+					$child = $node->nextChild($child->id());
284
+				} catch (ChildNotFoundException $e) {
285
+					// no more children
286
+					$child = null;
287
+				}
288
+			}
289
+
290
+			if (( ! isset($options['checkGrandChildren']) ||
291
+					$options['checkGrandChildren'])
292
+				&& count($children) > 0
293
+			) {
294
+				// we have children that failed but are not leaves.
295
+				$matches = $this->seek($children, $rule, $options);
296
+				foreach ($matches as $match) {
297
+					$return[] = $match;
298
+				}
299
+			}
300
+		}
301
+
302
+		return $return;
303
+	}
304
+
305
+	/**
306
+	 * Attempts to match the given arguments with the given operator.
307
+	 *
308
+	 * @param string $operator
309
+	 * @param string $pattern
310
+	 * @param string $value
311
+	 * @return bool
312
+	 */
313
+	protected function match($operator, $pattern, $value)
314
+	{
315
+		$value   = strtolower($value);
316
+		$pattern = strtolower($pattern);
317
+		switch ($operator) {
318
+			case '=':
319
+				return $value === $pattern;
320
+			case '!=':
321
+				return $value !== $pattern;
322
+			case '^=':
323
+				return preg_match('/^'.preg_quote($pattern, '/').'/', $value);
324
+			case '$=':
325
+				return preg_match('/'.preg_quote($pattern, '/').'$/', $value);
326
+			case '*=':
327
+				if ($pattern[0] == '/') {
328
+					return preg_match($pattern, $value);
329
+				}
330
+
331
+				return preg_match("/".$pattern."/i", $value);
332
+		}
333
+
334
+		return false;
335
+	}
336
+
337
+	/**
338
+	 * Attempts to figure out what the alteration will be for
339
+	 * the next element.
340
+	 *
341
+	 * @param array $rule
342
+	 * @return array
343
+	 */
344
+	protected function alterNext($rule)
345
+	{
346
+		$options = [];
347
+		if ($rule['tag'] == '>') {
348
+			$options['checkGrandChildren'] = false;
349
+		}
350
+
351
+		return $options;
352
+	}
353
+
354
+	/**
355
+	 * Flattens the option array.
356
+	 *
357
+	 * @param array $optionsArray
358
+	 * @return array
359
+	 */
360
+	protected function flattenOptions(array $optionsArray)
361
+	{
362
+		$options = [];
363
+		foreach ($optionsArray as $optionArray) {
364
+			foreach ($optionArray as $key => $option) {
365
+				$options[$key] = $option;
366
+			}
367
+		}
368
+
369
+		return $options;
370
+	}
371 371
 }
Please login to merge, or discard this patch.
src/PHPHtmlParser/StaticDom.php 2 patches
Doc Comments   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -57,7 +57,7 @@  discard block
 block discarded – undo
57 57
      * new object.
58 58
      *
59 59
      * @param string $str
60
-     * @return $this
60
+     * @return Dom
61 61
      */
62 62
     public static function load($str)
63 63
     {
@@ -72,7 +72,7 @@  discard block
 block discarded – undo
72 72
      * new object.
73 73
      *
74 74
      * @param string $file
75
-     * @return $this
75
+     * @return Dom
76 76
      */
77 77
     public static function loadFromFile($file)
78 78
     {
@@ -88,7 +88,7 @@  discard block
 block discarded – undo
88 88
      *
89 89
      * @param string $url
90 90
      * @param CurlInterface $curl
91
-     * @return $this
91
+     * @return Dom
92 92
      */
93 93
     public static function loadFromUrl($url, CurlInterface $curl = null)
94 94
     {
Please login to merge, or discard this patch.
Indentation   +88 added lines, -88 removed lines patch added patch discarded remove patch
@@ -11,102 +11,102 @@
 block discarded – undo
11 11
 final class StaticDom
12 12
 {
13 13
 
14
-    private static $dom = null;
14
+	private static $dom = null;
15 15
 
16
-    /**
17
-     * Attempts to call the given method on the most recent created dom
18
-     * from bellow.
19
-     *
20
-     * @param string $method
21
-     * @param array $arguments
22
-     * @throws NotLoadedException
23
-     * @return mixed
24
-     */
25
-    public static function __callStatic($method, $arguments)
26
-    {
27
-        if (self::$dom instanceof Dom) {
28
-            return call_user_func_array([self::$dom, $method], $arguments);
29
-        } else {
30
-            throw new NotLoadedException('The dom is not loaded. Can not call a dom method.');
31
-        }
32
-    }
16
+	/**
17
+	 * Attempts to call the given method on the most recent created dom
18
+	 * from bellow.
19
+	 *
20
+	 * @param string $method
21
+	 * @param array $arguments
22
+	 * @throws NotLoadedException
23
+	 * @return mixed
24
+	 */
25
+	public static function __callStatic($method, $arguments)
26
+	{
27
+		if (self::$dom instanceof Dom) {
28
+			return call_user_func_array([self::$dom, $method], $arguments);
29
+		} else {
30
+			throw new NotLoadedException('The dom is not loaded. Can not call a dom method.');
31
+		}
32
+	}
33 33
 
34
-    /**
35
-     * Call this to mount the static facade. The facade allows you to use
36
-     * this object as a $className.
37
-     *
38
-     * @param string $className
39
-     * @param Dom $dom
40
-     * @return bool
41
-     */
42
-    public static function mount($className = 'Dom', Dom $dom = null)
43
-    {
44
-        if (class_exists($className)) {
45
-            return false;
46
-        }
47
-        class_alias(__CLASS__, $className);
48
-        if ($dom instanceof Dom) {
49
-            self::$dom = $dom;
50
-        }
34
+	/**
35
+	 * Call this to mount the static facade. The facade allows you to use
36
+	 * this object as a $className.
37
+	 *
38
+	 * @param string $className
39
+	 * @param Dom $dom
40
+	 * @return bool
41
+	 */
42
+	public static function mount($className = 'Dom', Dom $dom = null)
43
+	{
44
+		if (class_exists($className)) {
45
+			return false;
46
+		}
47
+		class_alias(__CLASS__, $className);
48
+		if ($dom instanceof Dom) {
49
+			self::$dom = $dom;
50
+		}
51 51
 
52
-        return true;
53
-    }
52
+		return true;
53
+	}
54 54
 
55
-    /**
56
-     * Creates a new dom object and calls load() on the
57
-     * new object.
58
-     *
59
-     * @param string $str
60
-     * @return $this
61
-     */
62
-    public static function load($str)
63
-    {
64
-        $dom       = new Dom;
65
-        self::$dom = $dom;
55
+	/**
56
+	 * Creates a new dom object and calls load() on the
57
+	 * new object.
58
+	 *
59
+	 * @param string $str
60
+	 * @return $this
61
+	 */
62
+	public static function load($str)
63
+	{
64
+		$dom       = new Dom;
65
+		self::$dom = $dom;
66 66
 
67
-        return $dom->load($str);
68
-    }
67
+		return $dom->load($str);
68
+	}
69 69
 
70
-    /**
71
-     * Creates a new dom object and calls loadFromFile() on the
72
-     * new object.
73
-     *
74
-     * @param string $file
75
-     * @return $this
76
-     */
77
-    public static function loadFromFile($file)
78
-    {
79
-        $dom       = new Dom;
80
-        self::$dom = $dom;
70
+	/**
71
+	 * Creates a new dom object and calls loadFromFile() on the
72
+	 * new object.
73
+	 *
74
+	 * @param string $file
75
+	 * @return $this
76
+	 */
77
+	public static function loadFromFile($file)
78
+	{
79
+		$dom       = new Dom;
80
+		self::$dom = $dom;
81 81
 
82
-        return $dom->loadFromFile($file);
83
-    }
82
+		return $dom->loadFromFile($file);
83
+	}
84 84
 
85
-    /**
86
-     * Creates a new dom object and calls loadFromUrl() on the
87
-     * new object.
88
-     *
89
-     * @param string $url
90
-     * @param CurlInterface $curl
91
-     * @return $this
92
-     */
93
-    public static function loadFromUrl($url, CurlInterface $curl = null)
94
-    {
95
-        $dom       = new Dom;
96
-        self::$dom = $dom;
97
-        if (is_null($curl)) {
98
-            // use the default curl interface
99
-            $curl = new Curl;
100
-        }
85
+	/**
86
+	 * Creates a new dom object and calls loadFromUrl() on the
87
+	 * new object.
88
+	 *
89
+	 * @param string $url
90
+	 * @param CurlInterface $curl
91
+	 * @return $this
92
+	 */
93
+	public static function loadFromUrl($url, CurlInterface $curl = null)
94
+	{
95
+		$dom       = new Dom;
96
+		self::$dom = $dom;
97
+		if (is_null($curl)) {
98
+			// use the default curl interface
99
+			$curl = new Curl;
100
+		}
101 101
 
102
-        return $dom->loadFromUrl($url, $curl);
103
-    }
102
+		return $dom->loadFromUrl($url, $curl);
103
+	}
104 104
 
105
-    /**
106
-     * Sets the $dom variable to null.
107
-     */
108
-    public static function unload()
109
-    {
110
-        self::$dom = null;
111
-    }
105
+	/**
106
+	 * Sets the $dom variable to null.
107
+	 */
108
+	public static function unload()
109
+	{
110
+		self::$dom = null;
111
+	}
112 112
 }
Please login to merge, or discard this patch.
src/PHPHtmlParser/Options.php 1 patch
Indentation   +65 added lines, -65 removed lines patch added patch discarded remove patch
@@ -12,76 +12,76 @@
 block discarded – undo
12 12
 class Options
13 13
 {
14 14
 
15
-    /**
16
-     * The default options array
17
-     *
18
-     * @param array
19
-     */
20
-    protected $defaults = [
21
-        'whitespaceTextNode' => true,
22
-        'strict'             => false,
23
-        'enforceEncoding'    => null,
24
-        'cleanupInput'       => true,
25
-        'removeScripts'      => true,
26
-        'removeStyles'       => true,
27
-        'preserveLineBreaks' => false,
28
-    ];
15
+	/**
16
+	 * The default options array
17
+	 *
18
+	 * @param array
19
+	 */
20
+	protected $defaults = [
21
+		'whitespaceTextNode' => true,
22
+		'strict'             => false,
23
+		'enforceEncoding'    => null,
24
+		'cleanupInput'       => true,
25
+		'removeScripts'      => true,
26
+		'removeStyles'       => true,
27
+		'preserveLineBreaks' => false,
28
+	];
29 29
 
30
-    /**
31
-     * The list of all current options set.
32
-     *
33
-     * @param array
34
-     */
35
-    protected $options = [];
30
+	/**
31
+	 * The list of all current options set.
32
+	 *
33
+	 * @param array
34
+	 */
35
+	protected $options = [];
36 36
 
37
-    /**
38
-     * Sets the default options in the options array
39
-     */
40
-    public function __construct()
41
-    {
42
-        $this->options = $this->defaults;
43
-    }
37
+	/**
38
+	 * Sets the default options in the options array
39
+	 */
40
+	public function __construct()
41
+	{
42
+		$this->options = $this->defaults;
43
+	}
44 44
 
45
-    /**
46
-     * A magic get to call the get() method.
47
-     *
48
-     * @param string $key
49
-     * @return mixed
50
-     * @uses $this->get()
51
-     */
52
-    public function __get($key)
53
-    {
54
-        return $this->get($key);
55
-    }
45
+	/**
46
+	 * A magic get to call the get() method.
47
+	 *
48
+	 * @param string $key
49
+	 * @return mixed
50
+	 * @uses $this->get()
51
+	 */
52
+	public function __get($key)
53
+	{
54
+		return $this->get($key);
55
+	}
56 56
 
57
-    /**
58
-     * Sets a new options param to override the current option array.
59
-     *
60
-     * @param array $options
61
-     * @return $this
62
-     */
63
-    public function setOptions(array $options)
64
-    {
65
-        foreach ($options as $key => $option) {
66
-            $this->options[$key] = $option;
67
-        }
57
+	/**
58
+	 * Sets a new options param to override the current option array.
59
+	 *
60
+	 * @param array $options
61
+	 * @return $this
62
+	 */
63
+	public function setOptions(array $options)
64
+	{
65
+		foreach ($options as $key => $option) {
66
+			$this->options[$key] = $option;
67
+		}
68 68
 
69
-        return $this;
70
-    }
69
+		return $this;
70
+	}
71 71
 
72
-    /**
73
-     * Gets the value associated to the key, or null if the key is not
74
-     * found.
75
-     *
76
-     * @param string
77
-     * @return mixed
78
-     */
79
-    public function get($key)
80
-    {
81
-        if (isset($this->options[$key])) {
82
-            return $this->options[$key];
83
-        }
72
+	/**
73
+	 * Gets the value associated to the key, or null if the key is not
74
+	 * found.
75
+	 *
76
+	 * @param string
77
+	 * @return mixed
78
+	 */
79
+	public function get($key)
80
+	{
81
+		if (isset($this->options[$key])) {
82
+			return $this->options[$key];
83
+		}
84 84
 
85
-        return null;
86
-    }
85
+		return null;
86
+	}
87 87
 }
Please login to merge, or discard this patch.
src/PHPHtmlParser/Content.php 1 patch
Indentation   +240 added lines, -240 removed lines patch added patch discarded remove patch
@@ -9,244 +9,244 @@
 block discarded – undo
9 9
 class Content
10 10
 {
11 11
 
12
-    /**
13
-     * The content string.
14
-     *
15
-     * @var string
16
-     */
17
-    protected $content;
18
-
19
-    /**
20
-     * The size of the content.
21
-     *
22
-     * @var integer
23
-     */
24
-    protected $size;
25
-
26
-    /**
27
-     * The current position we are in the content.
28
-     *
29
-     * @var integer
30
-     */
31
-    protected $pos;
32
-
33
-    /**
34
-     * The following 4 strings are tags that are important to us.
35
-     *
36
-     * @var string
37
-     */
38
-    protected $blank = " \t\r\n";
39
-    protected $equal = ' =/>';
40
-    protected $slash = " />\r\n\t";
41
-    protected $attr = ' >';
42
-
43
-    /**
44
-     * Content constructor.
45
-     *
46
-     * @param $content
47
-     */
48
-    public function __construct($content)
49
-    {
50
-        $this->content = $content;
51
-        $this->size    = strlen($content);
52
-        $this->pos     = 0;
53
-    }
54
-
55
-    /**
56
-     * Returns the current position of the content.
57
-     *
58
-     * @return int
59
-     */
60
-    public function getPosition()
61
-    {
62
-        return $this->pos;
63
-    }
64
-
65
-    /**
66
-     * Gets the current character we are at.
67
-     *
68
-     * @param int $char
69
-     * @return string
70
-     */
71
-    public function char($char = null)
72
-    {
73
-        $pos = $this->pos;
74
-        if ( ! is_null($char)) {
75
-            $pos = $char;
76
-        }
77
-
78
-        if ( ! isset($this->content[$pos])) {
79
-            return '';
80
-        }
81
-
82
-        return $this->content[$pos];
83
-    }
84
-
85
-    /**
86
-     * Moves the current position forward.
87
-     *
88
-     * @param int $count
89
-     * @return $this
90
-     */
91
-    public function fastForward($count)
92
-    {
93
-        $this->pos += $count;
94
-
95
-        return $this;
96
-    }
97
-
98
-    /**
99
-     * Moves the current position backward.
100
-     *
101
-     * @param int $count
102
-     * @return $this
103
-     */
104
-    public function rewind($count)
105
-    {
106
-        $this->pos -= $count;
107
-        if ($this->pos < 0) {
108
-            $this->pos = 0;
109
-        }
110
-
111
-        return $this;
112
-    }
113
-
114
-    /**
115
-     * Copy the content until we find the given string.
116
-     *
117
-     * @param string $string
118
-     * @param bool $char
119
-     * @param bool $escape
120
-     * @return string
121
-     */
122
-    public function copyUntil($string, $char = false, $escape = false)
123
-    {
124
-        if ($this->pos >= $this->size) {
125
-            // nothing left
126
-            return '';
127
-        }
128
-
129
-        if ($escape) {
130
-            $position = $this->pos;
131
-            $found    = false;
132
-            while ( ! $found) {
133
-                $position = strpos($this->content, $string, $position);
134
-                if ($position === false) {
135
-                    // reached the end
136
-                    $found = true;
137
-                    continue;
138
-                }
139
-
140
-                if ($this->char($position - 1) == '\\') {
141
-                    // this character is escaped
142
-                    ++$position;
143
-                    continue;
144
-                }
145
-
146
-                $found = true;
147
-            }
148
-        } elseif ($char) {
149
-            $position = strcspn($this->content, $string, $this->pos);
150
-            $position += $this->pos;
151
-        } else {
152
-            $position = strpos($this->content, $string, $this->pos);
153
-        }
154
-
155
-        if ($position === false) {
156
-            // could not find character, just return the remaining of the content
157
-            $return    = substr($this->content, $this->pos, $this->size - $this->pos);
158
-            $this->pos = $this->size;
159
-
160
-            return $return;
161
-        }
162
-
163
-        if ($position == $this->pos) {
164
-            // we are at the right place
165
-            return '';
166
-        }
167
-
168
-        $return = substr($this->content, $this->pos, $position - $this->pos);
169
-        // set the new position
170
-        $this->pos = $position;
171
-
172
-        return $return;
173
-    }
174
-
175
-    /**
176
-     * Copies the content until the string is found and return it
177
-     * unless the 'unless' is found in the substring.
178
-     *
179
-     * @param string $string
180
-     * @param string $unless
181
-     * @return string
182
-     */
183
-    public function copyUntilUnless($string, $unless)
184
-    {
185
-        $lastPos = $this->pos;
186
-        $this->fastForward(1);
187
-        $foundString = $this->copyUntil($string, true, true);
188
-
189
-        $position = strcspn($foundString, $unless);
190
-        if ($position == strlen($foundString)) {
191
-            return $string.$foundString;
192
-        }
193
-        // rewind changes and return nothing
194
-        $this->pos = $lastPos;
195
-
196
-        return '';
197
-    }
198
-
199
-    /**
200
-     * Copies the content until it reaches the token string.,
201
-     *
202
-     * @param string $token
203
-     * @param bool $char
204
-     * @param bool $escape
205
-     * @return string
206
-     * @uses $this->copyUntil()
207
-     */
208
-    public function copyByToken($token, $char = false, $escape = false)
209
-    {
210
-        $string = $this->$token;
211
-
212
-        return $this->copyUntil($string, $char, $escape);
213
-    }
214
-
215
-    /**
216
-     * Skip a given set of characters.
217
-     *
218
-     * @param string $string
219
-     * @param bool $copy
220
-     * @return $this|string
221
-     */
222
-    public function skip($string, $copy = false)
223
-    {
224
-        $len = strspn($this->content, $string, $this->pos);
225
-
226
-        // make it chainable if they don't want a copy
227
-        $return = $this;
228
-        if ($copy) {
229
-            $return = substr($this->content, $this->pos, $len);
230
-        }
231
-
232
-        // update the position
233
-        $this->pos += $len;
234
-
235
-        return $return;
236
-    }
237
-
238
-    /**
239
-     * Skip a given token of pre-defined characters.
240
-     *
241
-     * @param string $token
242
-     * @param bool $copy
243
-     * @return null|string
244
-     * @uses $this->skip()
245
-     */
246
-    public function skipByToken($token, $copy = false)
247
-    {
248
-        $string = $this->$token;
249
-
250
-        return $this->skip($string, $copy);
251
-    }
12
+	/**
13
+	 * The content string.
14
+	 *
15
+	 * @var string
16
+	 */
17
+	protected $content;
18
+
19
+	/**
20
+	 * The size of the content.
21
+	 *
22
+	 * @var integer
23
+	 */
24
+	protected $size;
25
+
26
+	/**
27
+	 * The current position we are in the content.
28
+	 *
29
+	 * @var integer
30
+	 */
31
+	protected $pos;
32
+
33
+	/**
34
+	 * The following 4 strings are tags that are important to us.
35
+	 *
36
+	 * @var string
37
+	 */
38
+	protected $blank = " \t\r\n";
39
+	protected $equal = ' =/>';
40
+	protected $slash = " />\r\n\t";
41
+	protected $attr = ' >';
42
+
43
+	/**
44
+	 * Content constructor.
45
+	 *
46
+	 * @param $content
47
+	 */
48
+	public function __construct($content)
49
+	{
50
+		$this->content = $content;
51
+		$this->size    = strlen($content);
52
+		$this->pos     = 0;
53
+	}
54
+
55
+	/**
56
+	 * Returns the current position of the content.
57
+	 *
58
+	 * @return int
59
+	 */
60
+	public function getPosition()
61
+	{
62
+		return $this->pos;
63
+	}
64
+
65
+	/**
66
+	 * Gets the current character we are at.
67
+	 *
68
+	 * @param int $char
69
+	 * @return string
70
+	 */
71
+	public function char($char = null)
72
+	{
73
+		$pos = $this->pos;
74
+		if ( ! is_null($char)) {
75
+			$pos = $char;
76
+		}
77
+
78
+		if ( ! isset($this->content[$pos])) {
79
+			return '';
80
+		}
81
+
82
+		return $this->content[$pos];
83
+	}
84
+
85
+	/**
86
+	 * Moves the current position forward.
87
+	 *
88
+	 * @param int $count
89
+	 * @return $this
90
+	 */
91
+	public function fastForward($count)
92
+	{
93
+		$this->pos += $count;
94
+
95
+		return $this;
96
+	}
97
+
98
+	/**
99
+	 * Moves the current position backward.
100
+	 *
101
+	 * @param int $count
102
+	 * @return $this
103
+	 */
104
+	public function rewind($count)
105
+	{
106
+		$this->pos -= $count;
107
+		if ($this->pos < 0) {
108
+			$this->pos = 0;
109
+		}
110
+
111
+		return $this;
112
+	}
113
+
114
+	/**
115
+	 * Copy the content until we find the given string.
116
+	 *
117
+	 * @param string $string
118
+	 * @param bool $char
119
+	 * @param bool $escape
120
+	 * @return string
121
+	 */
122
+	public function copyUntil($string, $char = false, $escape = false)
123
+	{
124
+		if ($this->pos >= $this->size) {
125
+			// nothing left
126
+			return '';
127
+		}
128
+
129
+		if ($escape) {
130
+			$position = $this->pos;
131
+			$found    = false;
132
+			while ( ! $found) {
133
+				$position = strpos($this->content, $string, $position);
134
+				if ($position === false) {
135
+					// reached the end
136
+					$found = true;
137
+					continue;
138
+				}
139
+
140
+				if ($this->char($position - 1) == '\\') {
141
+					// this character is escaped
142
+					++$position;
143
+					continue;
144
+				}
145
+
146
+				$found = true;
147
+			}
148
+		} elseif ($char) {
149
+			$position = strcspn($this->content, $string, $this->pos);
150
+			$position += $this->pos;
151
+		} else {
152
+			$position = strpos($this->content, $string, $this->pos);
153
+		}
154
+
155
+		if ($position === false) {
156
+			// could not find character, just return the remaining of the content
157
+			$return    = substr($this->content, $this->pos, $this->size - $this->pos);
158
+			$this->pos = $this->size;
159
+
160
+			return $return;
161
+		}
162
+
163
+		if ($position == $this->pos) {
164
+			// we are at the right place
165
+			return '';
166
+		}
167
+
168
+		$return = substr($this->content, $this->pos, $position - $this->pos);
169
+		// set the new position
170
+		$this->pos = $position;
171
+
172
+		return $return;
173
+	}
174
+
175
+	/**
176
+	 * Copies the content until the string is found and return it
177
+	 * unless the 'unless' is found in the substring.
178
+	 *
179
+	 * @param string $string
180
+	 * @param string $unless
181
+	 * @return string
182
+	 */
183
+	public function copyUntilUnless($string, $unless)
184
+	{
185
+		$lastPos = $this->pos;
186
+		$this->fastForward(1);
187
+		$foundString = $this->copyUntil($string, true, true);
188
+
189
+		$position = strcspn($foundString, $unless);
190
+		if ($position == strlen($foundString)) {
191
+			return $string.$foundString;
192
+		}
193
+		// rewind changes and return nothing
194
+		$this->pos = $lastPos;
195
+
196
+		return '';
197
+	}
198
+
199
+	/**
200
+	 * Copies the content until it reaches the token string.,
201
+	 *
202
+	 * @param string $token
203
+	 * @param bool $char
204
+	 * @param bool $escape
205
+	 * @return string
206
+	 * @uses $this->copyUntil()
207
+	 */
208
+	public function copyByToken($token, $char = false, $escape = false)
209
+	{
210
+		$string = $this->$token;
211
+
212
+		return $this->copyUntil($string, $char, $escape);
213
+	}
214
+
215
+	/**
216
+	 * Skip a given set of characters.
217
+	 *
218
+	 * @param string $string
219
+	 * @param bool $copy
220
+	 * @return $this|string
221
+	 */
222
+	public function skip($string, $copy = false)
223
+	{
224
+		$len = strspn($this->content, $string, $this->pos);
225
+
226
+		// make it chainable if they don't want a copy
227
+		$return = $this;
228
+		if ($copy) {
229
+			$return = substr($this->content, $this->pos, $len);
230
+		}
231
+
232
+		// update the position
233
+		$this->pos += $len;
234
+
235
+		return $return;
236
+	}
237
+
238
+	/**
239
+	 * Skip a given token of pre-defined characters.
240
+	 *
241
+	 * @param string $token
242
+	 * @param bool $copy
243
+	 * @return null|string
244
+	 * @uses $this->skip()
245
+	 */
246
+	public function skipByToken($token, $copy = false)
247
+	{
248
+		$string = $this->$token;
249
+
250
+		return $this->skip($string, $copy);
251
+	}
252 252
 }
Please login to merge, or discard this patch.
src/PHPHtmlParser/CurlInterface.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -9,11 +9,11 @@
 block discarded – undo
9 9
 interface CurlInterface
10 10
 {
11 11
 
12
-    /**
13
-     * This method should return the content of the url in a string
14
-     *
15
-     * @param string $url
16
-     * @return string
17
-     */
18
-    public function get($url);
12
+	/**
13
+	 * This method should return the content of the url in a string
14
+	 *
15
+	 * @param string $url
16
+	 * @return string
17
+	 */
18
+	public function get($url);
19 19
 }
Please login to merge, or discard this patch.
src/PHPHtmlParser/Curl.php 1 patch
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -11,31 +11,31 @@
 block discarded – undo
11 11
 class Curl implements CurlInterface
12 12
 {
13 13
 
14
-    /**
15
-     * A simple curl implementation to get the content of the url.
16
-     *
17
-     * @param string $url
18
-     * @return string
19
-     * @throws CurlException
20
-     */
21
-    public function get($url)
22
-    {
23
-        $ch = curl_init($url);
14
+	/**
15
+	 * A simple curl implementation to get the content of the url.
16
+	 *
17
+	 * @param string $url
18
+	 * @return string
19
+	 * @throws CurlException
20
+	 */
21
+	public function get($url)
22
+	{
23
+		$ch = curl_init($url);
24 24
 
25
-        if ( ! ini_get('open_basedir')) {
26
-            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
27
-        }
25
+		if ( ! ini_get('open_basedir')) {
26
+			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
27
+		}
28 28
 
29
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
30
-        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
29
+		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
30
+		curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
31 31
 
32
-        $content = curl_exec($ch);
33
-        if ($content === false) {
34
-            // there was a problem
35
-            $error = curl_error($ch);
36
-            throw new CurlException('Error retrieving "'.$url.'" ('.$error.')');
37
-        }
32
+		$content = curl_exec($ch);
33
+		if ($content === false) {
34
+			// there was a problem
35
+			$error = curl_error($ch);
36
+			throw new CurlException('Error retrieving "'.$url.'" ('.$error.')');
37
+		}
38 38
 
39
-        return $content;
40
-    }
39
+		return $content;
40
+	}
41 41
 }
Please login to merge, or discard this patch.
src/PHPHtmlParser/Dom/MockNode.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -11,19 +11,19 @@
 block discarded – undo
11 11
 class MockNode extends AbstractNode
12 12
 {
13 13
 
14
-    public function innerHtml()
15
-    {
16
-    }
14
+	public function innerHtml()
15
+	{
16
+	}
17 17
 
18
-    public function outerHtml()
19
-    {
20
-    }
18
+	public function outerHtml()
19
+	{
20
+	}
21 21
 
22
-    public function text()
23
-    {
24
-    }
22
+	public function text()
23
+	{
24
+	}
25 25
 
26
-    protected function clear()
27
-    {
28
-    }
26
+	protected function clear()
27
+	{
28
+	}
29 29
 }
Please login to merge, or discard this patch.
src/PHPHtmlParser/Dom/TextNode.php 1 patch
Indentation   +82 added lines, -82 removed lines patch added patch discarded remove patch
@@ -9,97 +9,97 @@
 block discarded – undo
9 9
 class TextNode extends AbstractNode
10 10
 {
11 11
 
12
-    /**
13
-     * This is a text node.
14
-     *
15
-     * @var Tag
16
-     */
17
-    protected $tag;
12
+	/**
13
+	 * This is a text node.
14
+	 *
15
+	 * @var Tag
16
+	 */
17
+	protected $tag;
18 18
 
19
-    /**
20
-     * This is the text in this node.
21
-     *
22
-     * @var string
23
-     */
24
-    protected $text;
19
+	/**
20
+	 * This is the text in this node.
21
+	 *
22
+	 * @var string
23
+	 */
24
+	protected $text;
25 25
 
26
-    /**
27
-     * This is the converted version of the text.
28
-     *
29
-     * @var string
30
-     */
31
-    protected $convertedText = null;
26
+	/**
27
+	 * This is the converted version of the text.
28
+	 *
29
+	 * @var string
30
+	 */
31
+	protected $convertedText = null;
32 32
 
33
-    /**
34
-     * Sets the text for this node.
35
-     *
36
-     * @param string $text
37
-     */
38
-    public function __construct($text)
39
-    {
40
-        // remove double spaces
41
-        $text = mb_ereg_replace('\s+', ' ', $text);
33
+	/**
34
+	 * Sets the text for this node.
35
+	 *
36
+	 * @param string $text
37
+	 */
38
+	public function __construct($text)
39
+	{
40
+		// remove double spaces
41
+		$text = mb_ereg_replace('\s+', ' ', $text);
42 42
 
43
-        // restore line breaks
44
-        $text = str_replace('&#10', "\n", $text);
43
+		// restore line breaks
44
+		$text = str_replace('&#10', "\n", $text);
45 45
 
46
-        $this->text = $text;
47
-        $this->tag  = new Tag('text');
48
-        parent::__construct();
49
-    }
46
+		$this->text = $text;
47
+		$this->tag  = new Tag('text');
48
+		parent::__construct();
49
+	}
50 50
 
51
-    /**
52
-     * Returns the text of this node.
53
-     *
54
-     * @return string
55
-     */
56
-    public function text()
57
-    {
58
-        // convert charset
59
-        if ( ! is_null($this->encode)) {
60
-            if ( ! is_null($this->convertedText)) {
61
-                // we already know the converted value
62
-                return $this->convertedText;
63
-            }
64
-            $text = $this->encode->convert($this->text);
51
+	/**
52
+	 * Returns the text of this node.
53
+	 *
54
+	 * @return string
55
+	 */
56
+	public function text()
57
+	{
58
+		// convert charset
59
+		if ( ! is_null($this->encode)) {
60
+			if ( ! is_null($this->convertedText)) {
61
+				// we already know the converted value
62
+				return $this->convertedText;
63
+			}
64
+			$text = $this->encode->convert($this->text);
65 65
 
66
-            // remember the conversion
67
-            $this->convertedText = $text;
66
+			// remember the conversion
67
+			$this->convertedText = $text;
68 68
 
69
-            return $text;
70
-        } else {
71
-            return $this->text;
72
-        }
73
-    }
69
+			return $text;
70
+		} else {
71
+			return $this->text;
72
+		}
73
+	}
74 74
 
75
-    /**
76
-     * This node has no html, just return the text.
77
-     *
78
-     * @return string
79
-     * @uses $this->text()
80
-     */
81
-    public function innerHtml()
82
-    {
83
-        return $this->text();
84
-    }
75
+	/**
76
+	 * This node has no html, just return the text.
77
+	 *
78
+	 * @return string
79
+	 * @uses $this->text()
80
+	 */
81
+	public function innerHtml()
82
+	{
83
+		return $this->text();
84
+	}
85 85
 
86
-    /**
87
-     * This node has no html, just return the text.
88
-     *
89
-     * @return string
90
-     * @uses $this->text()
91
-     */
92
-    public function outerHtml()
93
-    {
94
-        return $this->text();
95
-    }
86
+	/**
87
+	 * This node has no html, just return the text.
88
+	 *
89
+	 * @return string
90
+	 * @uses $this->text()
91
+	 */
92
+	public function outerHtml()
93
+	{
94
+		return $this->text();
95
+	}
96 96
 
97
-    /**
98
-     * Call this when something in the node tree has changed. Like a child has been added
99
-     * or a parent has been changed.
100
-     */
101
-    protected function clear()
102
-    {
103
-        $this->convertedText = null;
104
-    }
97
+	/**
98
+	 * Call this when something in the node tree has changed. Like a child has been added
99
+	 * or a parent has been changed.
100
+	 */
101
+	protected function clear()
102
+	{
103
+		$this->convertedText = null;
104
+	}
105 105
 }
Please login to merge, or discard this patch.
src/PHPHtmlParser/Dom/ArrayNode.php 1 patch
Indentation   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -12,31 +12,31 @@
 block discarded – undo
12 12
 abstract class ArrayNode extends AbstractNode implements IteratorAggregate, Countable
13 13
 {
14 14
 
15
-    /**
16
-     * Returns the array to be used the the iterator.
17
-     *
18
-     * @return array
19
-     */
20
-    abstract protected function getIteratorArray();
15
+	/**
16
+	 * Returns the array to be used the the iterator.
17
+	 *
18
+	 * @return array
19
+	 */
20
+	abstract protected function getIteratorArray();
21 21
 
22
-    /**
23
-     * Gets the iterator
24
-     *
25
-     * @return ArrayIterator
26
-     */
27
-    public function getIterator()
28
-    {
29
-        return new ArrayIterator($this->getIteratorArray());
30
-    }
22
+	/**
23
+	 * Gets the iterator
24
+	 *
25
+	 * @return ArrayIterator
26
+	 */
27
+	public function getIterator()
28
+	{
29
+		return new ArrayIterator($this->getIteratorArray());
30
+	}
31 31
 
32
-    /**
33
-     * Returns the count of the iterator array.
34
-     *
35
-     * @return int
36
-     */
37
-    public function count()
38
-    {
39
-        return count($this->getIteratorArray());
40
-    }
32
+	/**
33
+	 * Returns the count of the iterator array.
34
+	 *
35
+	 * @return int
36
+	 */
37
+	public function count()
38
+	{
39
+		return count($this->getIteratorArray());
40
+	}
41 41
 
42 42
 }
Please login to merge, or discard this patch.