mirror of
https://github.com/joomla-extensions/jedchecker.git
synced 2024-11-30 16:53:59 +00:00
check BOM in the Framework rule
This commit is contained in:
parent
448b5c59a9
commit
3aa1682131
@ -55,6 +55,7 @@ COM_JEDCHECKER_OLD_RULE_X_PHP_FILE_REMOVED="Removed PHP file for '%s' rule."
|
||||
COM_JEDCHECKER_OLD_RULE_X_INI_FILE_REMOVED="Removed 'ini' file for '%s' rule."
|
||||
COM_JEDCHECKER_RULE_FRAMEWORK="Joomla Framework deprecated and unsafe"
|
||||
COM_JEDCHECKER_RULE_FRAMEWORK_DESC="Warns about <ul><li>superglobals</li><li>commonly used but deprecated functions</li><li>highly unsafe functions</li></ul>Find more info <a href='https://docs.joomla.org/Potential_backward_compatibility_issues_in_Joomla_3.0_and_Joomla_Platform_12.1' target='_blank'>on Joomla! backward compatibility for Joomla! 3</a> and <a href="https://docs.joomla.org/Potential_backward_compatibility_issues_in_Joomla_4">Joomla! 4</a>"
|
||||
COM_JEDCHECKER_ERROR_FRAMEWORK_BOM_FOUND="The byte order mark (BOM) is detected"
|
||||
COM_JEDCHECKER_ERROR_FRAMEWORK_SHORT_PHP_TAG="Short PHP tag found. As short tags can be disabled in PHP, it is recommended to only use the normal tags (<?php) to maximise compatibility."
|
||||
COM_JEDCHECKER_ERROR_FRAMEWORK_SUPERGLOBALS="Use of superglobals is strongly discouraged"
|
||||
COM_JEDCHECKER_ERROR_FRAMEWORK_DIRECTDB="Use of direct database access is strongly discouraged"
|
||||
|
@ -140,15 +140,23 @@ class JedcheckerRulesFramework extends JEDcheckerRule
|
||||
return false;
|
||||
}
|
||||
|
||||
$result = false;
|
||||
|
||||
$content = file_get_contents($file);
|
||||
|
||||
// Check BOM
|
||||
if (strncmp($content, "\xEF\xBB\xBF", 3) === 0)
|
||||
{
|
||||
$this->report->addError($file, JText::_('COM_JEDCHECKER_ERROR_FRAMEWORK_BOM_FOUND'));
|
||||
$result = true;
|
||||
}
|
||||
|
||||
$content = JEDCheckerHelper::cleanPhpCode(
|
||||
$content,
|
||||
JEDCheckerHelper::CLEAN_HTML | JEDCheckerHelper::CLEAN_COMMENTS | JEDCheckerHelper::CLEAN_STRINGS
|
||||
);
|
||||
$cleanContent = JEDCheckerHelper::splitLines($content);
|
||||
|
||||
$result = false;
|
||||
|
||||
if (preg_match('/<\?\s/', $content, $match, PREG_OFFSET_CAPTURE))
|
||||
{
|
||||
$lineno = substr_count($content, "\n", 0, $match[0][1]);
|
||||
|
Loading…
Reference in New Issue
Block a user