@@ 399-404 (lines=6) @@ | ||
396 | } |
|
397 | ||
398 | $ltPos = strpos( $str, '<' ); |
|
399 | if ( $ltPos === false || $ltPos > $colonPos ) { |
|
400 | # Easy; no tag nesting to worry about |
|
401 | $before = substr( $str, 0, $colonPos ); |
|
402 | $after = substr( $str, $colonPos + 1 ); |
|
403 | return $colonPos; |
|
404 | } |
|
405 | ||
406 | # Ugly state machine to walk through avoiding tags. |
|
407 | $state = self::COLON_STATE_TEXT; |
|
@@ 421-426 (lines=6) @@ | ||
418 | $state = self::COLON_STATE_TAGSTART; |
|
419 | break; |
|
420 | case ":": |
|
421 | if ( $level === 0 ) { |
|
422 | # We found it! |
|
423 | $before = substr( $str, 0, $i ); |
|
424 | $after = substr( $str, $i + 1 ); |
|
425 | return $i; |
|
426 | } |
|
427 | # Embedded in a tag; don't break it. |
|
428 | break; |
|
429 | default: |
|
@@ 437-444 (lines=8) @@ | ||
434 | return false; |
|
435 | } |
|
436 | $ltPos = strpos( $str, '<', $i ); |
|
437 | if ( $level === 0 ) { |
|
438 | if ( $ltPos === false || $colonPos < $ltPos ) { |
|
439 | # We found it! |
|
440 | $before = substr( $str, 0, $colonPos ); |
|
441 | $after = substr( $str, $colonPos + 1 ); |
|
442 | return $i; |
|
443 | } |
|
444 | } |
|
445 | if ( $ltPos === false ) { |
|
446 | # Nothing else interesting to find; abort! |
|
447 | # We're nested, but there's no close tags left. Abort! |