src/Fixer/Basic/NonPrintableCharacterFixer.php
protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $replacements = [];
        $escapeSequences = [];
        foreach ($this->symbolsReplace as $character => list($replacement, $codepoint)) {
            $replacements[$character] = $replacement;
            $escapeSequences[$character] = '\u{'.$codepoint.'}';
        }

        foreach ($tokens as $index => $token) {
            $content = $token->getContent();

            if (
                $this->configuration['use_escape_sequences_in_strings']
                && $token->isGivenKind([T_CONSTANT_ENCAPSED_STRING, T_ENCAPSED_AND_WHITESPACE])
            ) {
                if (!Preg::match('/'.implode('|', array_keys($escapeSequences)).'/', $content)) {
                    continue;
                }

                $previousToken = $tokens[$index - 1];
                $stringTypeChanged = false;

                if ($previousToken->isGivenKind(T_START_HEREDOC)) {
                    $previousTokenContent = $previousToken->getContent();

                    if (false !== strpos($previousTokenContent, '\'')) {
                        $tokens[$index - 1] = new Token([T_START_HEREDOC, str_replace('\'', '', $previousTokenContent)]);
                        $stringTypeChanged = true;
                    }
                } elseif ("'" === $content[0]) {
                    $content = Preg::replace('/^\'(.*)\'$/', '"$1"', $content);
                    $stringTypeChanged = true;
                }

                if ($stringTypeChanged) {
                    $content = Preg::replace('/([\\\\$])/', '\\\\$1', $content);
                }

                $tokens[$index] = new Token([$token->getId(), strtr($content, $escapeSequences)]);

                continue;
            }

            if ($token->isGivenKind(self::$tokens)) {
                $tokens[$index] = new Token([$token->getId(), strtr($content, $replacements)]);
            }
        }
    }
protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $replacements = [];
        $escapeSequences = [];
        foreach ($this->symbolsReplace as $character => list($replacement, $codepoint)) {
            $replacements[$character] = $replacement;
            $escapeSequences[$character] = '\u{'.$codepoint.'}';
        }

        foreach ($tokens as $index => $token) {
            $content = $token->getContent();

            if (
                $this->configuration['use_escape_sequences_in_strings']
                && $token->isGivenKind([T_CONSTANT_ENCAPSED_STRING, T_ENCAPSED_AND_WHITESPACE])
            ) {
                if (!Preg::match('/'.implode('|', array_keys($escapeSequences)).'/', $content)) {
                    continue;
                }

                $previousToken = $tokens[$index - 1];
                $stringTypeChanged = false;

                if ($previousToken->isGivenKind(T_START_HEREDOC)) {
                    $previousTokenContent = $previousToken->getContent();

                    if (false !== strpos($previousTokenContent, '\'')) {
                        $tokens[$index - 1] = new Token([T_START_HEREDOC, str_replace('\'', '', $previousTokenContent)]);
                        $stringTypeChanged = true;
                    }
                } elseif ("'" === $content[0]) {
                    $content = Preg::replace('/^\'(.*)\'$/', '"$1"', $content);
                    $stringTypeChanged = true;
                }

                if ($stringTypeChanged) {
                    $content = Preg::replace('/([\\\\$])/', '\\\\$1', $content);
                }

                $tokens[$index] = new Token([$token->getId(), strtr($content, $escapeSequences)]);

                continue;
            }

            if ($token->isGivenKind(self::$tokens)) {
                $tokens[$index] = new Token([$token->getId(), strtr($content, $replacements)]);
            }
        }
    }
protected function applyFix ( \ SplFileInfo $ file , Tokens $ tokens ) { $ replacements = [ ] ; $ escapeSequences = [ ] ; foreach ( $ this -> symbolsReplace as $ character => list ( $ replacement , $ codepoint ) ) { $ replacements [ $ character ] = $ replacement ; $ escapeSequences [ $ character ] = '\u{' . $ codepoint . '}' ; } foreach ( $ tokens as $ index => $ token ) { $ content = $ token -> getContent ( ) ; if ( $ this -> configuration [ 'use_escape_sequences_in_strings' ] && $ token -> isGivenKind ( [ T_CONSTANT_ENCAPSED_STRING , T_ENCAPSED_AND_WHITESPACE ] ) ) { if ( ! Preg :: match ( '/' . implode ( '|' , array_keys ( $ escapeSequences ) ) . '/' , $ content ) ) { continue ; } $ previousToken = $ tokens [ $ index - 1 ] ; $ stringTypeChanged = false ; if ( $ previousToken -> isGivenKind ( T_START_HEREDOC ) ) { $ previousTokenContent = $ previousToken -> getContent ( ) ; if ( false !== strpos ( $ previousTokenContent , '\'' ) ) { $ tokens [ $ index - 1 ] = new Token ( [ T_START_HEREDOC , str_replace ( '\'' , '' , $ previousTokenContent ) ] ) ; $ stringTypeChanged = true ; } } elseif ( "'" === $ content [ 0 ] ) { $ content = Preg :: replace ( '/^\'(.*)\'$/' , '"$1"' , $ content ) ; $ stringTypeChanged = true ; } if ( $ stringTypeChanged ) { $ content = Preg :: replace ( '/([\\\\$])/' , '\\\\$1' , $ content ) ; } $ tokens [ $ index ] = new Token ( [ $ token -> getId ( ) , strtr ( $ content , $ escapeSequences ) ] ) ; continue ; } if ( $ token -> isGivenKind ( self :: $ tokens ) ) { $ tokens [ $ index ] = new Token ( [ $ token -> getId ( ) , strtr ( $ content , $ replacements ) ] ) ; } } }
{@inheritdoc}
{