diff --git a/rules-tests/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector/Fixture/skip-hexa-chars.php.inc b/rules-tests/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector/Fixture/skip-hexa-chars.php.inc new file mode 100644 index 00000000000..51b1af58fb8 --- /dev/null +++ b/rules-tests/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector/Fixture/skip-hexa-chars.php.inc @@ -0,0 +1,5 @@ +hasAttribute(AttributeKey::DOC_LABEL); + if ($interpolatedString->hasAttribute(AttributeKey::DOC_LABEL)) { + return true; + } + + foreach ($interpolatedString->parts as $part) { + if (! $part instanceof InterpolatedStringPart) { + continue; + } + + if ($this->containsASCIIChar($part->value)) { + return true; + } + } + + return false; } private function collectEncapsedStringPart(InterpolatedStringPart $interpolatedStringPart): void @@ -250,4 +264,9 @@ private function createString(string $value): String_ 'kind' => $kind, ]); } + + private function containsASCIIChar(string $content): bool + { + return (bool) Strings::match($content, '#[\x00-\x08\x0B\x0C\x0E-\x1F]#'); + } }