RemexHtml/Tokenizer/Tokenizer.php
protected function textElementState( $ignoreCharRefs ) {
		if ( $this->appropriateEndTag === null ) {
			$this->emitRawTextRange( $ignoreCharRefs, $this->pos, $this->length - $this->pos );
			$this->pos = $this->length;
			return self::STATE_EOF;
		}

		$re = "~</
			{$this->appropriateEndTag}
			# Assert that the end tag name state is exited appropriately,
			# since the anything else case leads to the tag being treated as
			# a literal
			(?=[\t\n\f />])
			~ix";

		do {
			$count = preg_match( $re, $this->text, $m, PREG_OFFSET_CAPTURE, $this->pos );

			if ( $count === false ) {
				$this->throwPregError();
			} elseif ( !$count ) {
				// Text runs to end
				$this->emitRawTextRange( $ignoreCharRefs, $this->pos, $this->length - $this->pos );
				$this->pos = $this->length;
				return self::STATE_EOF;
			}
			$startPos = $m[0][1];

			// Emit text before tag
			$this->emitRawTextRange( $ignoreCharRefs, $this->pos, $startPos - $this->pos );

			$matchLength = strlen( $m[0][0] );
			$this->pos = $startPos + $matchLength;
			$nextState = $this->handleAttribsAndClose( self::STATE_RCDATA,
				$this->appropriateEndTag, true, $startPos );
		} while ( $nextState === self::STATE_RCDATA );
		return $nextState;
	}
protected function textElementState( $ignoreCharRefs ) {
		if ( $this->appropriateEndTag === null ) {
			$this->emitRawTextRange( $ignoreCharRefs, $this->pos, $this->length - $this->pos );
			$this->pos = $this->length;
			return self::STATE_EOF;
		}

		$re = "~</
			{$this->appropriateEndTag}
			# Assert that the end tag name state is exited appropriately,
			# since the anything else case leads to the tag being treated as
			# a literal
			(?=[\t\n\f />])
			~ix";

		do {
			$count = preg_match( $re, $this->text, $m, PREG_OFFSET_CAPTURE, $this->pos );

			if ( $count === false ) {
				$this->throwPregError();
			} elseif ( !$count ) {
				// Text runs to end
				$this->emitRawTextRange( $ignoreCharRefs, $this->pos, $this->length - $this->pos );
				$this->pos = $this->length;
				return self::STATE_EOF;
			}
			$startPos = $m[0][1];

			// Emit text before tag
			$this->emitRawTextRange( $ignoreCharRefs, $this->pos, $startPos - $this->pos );

			$matchLength = strlen( $m[0][0] );
			$this->pos = $startPos + $matchLength;
			$nextState = $this->handleAttribsAndClose( self::STATE_RCDATA,
				$this->appropriateEndTag, true, $startPos );
		} while ( $nextState === self::STATE_RCDATA );
		return $nextState;
	}
protected function textElementState ( $ ignoreCharRefs ) { if ( $ this -> appropriateEndTag === null ) { $ this -> emitRawTextRange ( $ ignoreCharRefs , $ this -> pos , $ this -> length - $ this -> pos ) ; $ this -> pos = $ this -> length ; return self :: STATE_EOF ; } $ re = "~</
			{$this->appropriateEndTag}
			# Assert that the end tag name state is exited appropriately,
			# since the anything else case leads to the tag being treated as
			# a literal
			(?=[\t\n\f />])
			~ix" ; do { $ count = preg_match ( $ re , $ this -> text , $ m , PREG_OFFSET_CAPTURE , $ this -> pos ) ; if ( $ count === false ) { $ this -> throwPregError ( ) ; } elseif ( ! $ count ) { // Text runs to end $ this -> emitRawTextRange ( $ ignoreCharRefs , $ this -> pos , $ this -> length - $ this -> pos ) ; $ this -> pos = $ this -> length ; return self :: STATE_EOF ; } $ startPos = $ m [ 0 ] [ 1 ] ; // Emit text before tag $ this -> emitRawTextRange ( $ ignoreCharRefs , $ this -> pos , $ startPos - $ this -> pos ) ; $ matchLength = strlen ( $ m [ 0 ] [ 0 ] ) ; $ this -> pos = $ startPos + $ matchLength ; $ nextState = $ this -> handleAttribsAndClose ( self :: STATE_RCDATA , $ this -> appropriateEndTag , true , $ startPos ) ; } while ( $ nextState === self :: STATE_RCDATA ) ; return $ nextState ; }
The entry point for the RCDATA and RAWTEXT states.
@param bool $ignoreCharRefs True to ignore character references regardless
of configuration, false to respect the configuration.
@return int The next state index
The entry point for the RCDATA and RAWTEXT states .