diff --git a/package.xml b/package.xml index 50b562a931..aaaede60ba 100644 --- a/package.xml +++ b/package.xml @@ -720,6 +720,8 @@ http://pear.php.net/dtd/package-2.0.xsd"> + + diff --git a/src/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php b/src/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php index f52180dd35..120eb21684 100644 --- a/src/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php +++ b/src/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php @@ -36,7 +36,10 @@ class CharacterBeforePHPOpeningTagSniff implements Sniff */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -52,10 +55,15 @@ public function register() */ public function process(File $phpcsFile, $stackPtr) { + $tokens = $phpcsFile->getTokens(); + if ($tokens[$stackPtr]['code'] === T_OPEN_TAG_WITH_ECHO) { + // Mixed PHP/HTML file, ignore. + return $phpcsFile->numTokens; + } + $expected = 0; if ($stackPtr > 0) { // Allow a byte-order mark. - $tokens = $phpcsFile->getTokens(); foreach ($this->bomDefinitions as $bomName => $expectedBomHex) { $bomByteLength = (strlen($expectedBomHex) / 2); $htmlBomHex = bin2hex(substr($tokens[0]['content'], 0, $bomByteLength)); diff --git a/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.4.inc b/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.4.inc new file mode 100644 index 0000000000..185d1c3bd1 --- /dev/null +++ b/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.4.inc @@ -0,0 +1,5 @@ +Foo + + + + diff --git a/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.5.inc b/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.5.inc new file mode 100644 index 0000000000..e387376d6c --- /dev/null +++ b/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.5.inc @@ -0,0 +1,4 @@ + + +