Code Duplication    Length = 3-6 lines in 7 locations

include/phpmailer/extras/htmlfilter.php 7 locations

@@ 178-180 (lines=3) @@
175
     * \---------^
176
     */
177
    $pos = tln_skipspace($body, $lt + 1);
178
    if ($pos >= mb_strlen($body)) {
179
        return [false, false, false, $lt, mb_strlen($body)];
180
    }
181
    /**
182
     * There are 3 kinds of tags:
183
     * 1. Opening tag, e.g.:
@@ 226-228 (lines=3) @@
223
     * Look for next [\W-_], which will indicate the end of the tag name.
224
     */
225
    $regary = tln_findnxreg($body, $pos, '[^\w\-_]');
226
    if (false == $regary) {
227
        return [false, false, false, $lt, mb_strlen($body)];
228
    }
229
    list($pos, $tagname, $match) = $regary;
230
    $tagname = mb_strtolower($tagname);
231
@@ 287-292 (lines=6) @@
284
285
    while ($pos <= mb_strlen($body)) {
286
        $pos = tln_skipspace($body, $pos);
287
        if ($pos == mb_strlen($body)) {
288
            /**
289
             * Non-closed tag.
290
             */
291
            return [false, false, false, $lt, $pos];
292
        }
293
        /**
294
         * See if we arrived at a ">" or "/>", which means that we reached
295
         * the end of the tag.
@@ 329-334 (lines=6) @@
326
         * attrname="yes".
327
         */
328
        $regary = tln_findnxreg($body, $pos, '[^\w\-_]');
329
        if (false == $regary) {
330
            /**
331
             * Looks like body ended before the end of tag.
332
             */
333
            return [false, false, false, $lt, mb_strlen($body)];
334
        }
335
        list($pos, $attname, $match) = $regary;
336
        $attname = mb_strtolower($attname);
337
        /**
@@ 394-396 (lines=3) @@
391
                    $quot = mb_substr($body, $pos, 1);
392
                    if ('\'' == $quot) {
393
                        $regary = tln_findnxreg($body, $pos + 1, '\'');
394
                        if (false == $regary) {
395
                            return [false, false, false, $lt, mb_strlen($body)];
396
                        }
397
                        list($pos, $attval, $match) = $regary;
398
                        $pos++;
399
                        $attary[$attname] = '\'' . $attval . '\'';
@@ 402-404 (lines=3) @@
399
                        $attary[$attname] = '\'' . $attval . '\'';
400
                    } elseif ('"' == $quot) {
401
                        $regary = tln_findnxreg($body, $pos + 1, '\"');
402
                        if (false == $regary) {
403
                            return [false, false, false, $lt, mb_strlen($body)];
404
                        }
405
                        list($pos, $attval, $match) = $regary;
406
                        $pos++;
407
                        $attary[$attname] = '"' . $attval . '"';
@@ 413-415 (lines=3) @@
410
                         * These are hateful. Look for \s, or >.
411
                         */
412
                        $regary = tln_findnxreg($body, $pos, '[\s>]');
413
                        if (false == $regary) {
414
                            return [false, false, false, $lt, mb_strlen($body)];
415
                        }
416
                        list($pos, $attval, $match) = $regary;
417
                        /**
418
                         * If it's ">" it will be caught at the top.