improves regexes parsing plugins metadata

git-svn-id: http://piwigo.org/svn/trunk@28969 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
mistic100
2014-07-06 14:05:05 +00:00
parent dbedfd173f
commit 1633d8ffaa
4 changed files with 21 additions and 19 deletions

View File

@@ -257,15 +257,15 @@ DELETE FROM '. PLUGINS_TABLE .'
);
$plg_data = file_get_contents($path.'/main.inc.php', null, null, 0, 2048);
if ( preg_match("|Plugin Name: (.*)|", $plg_data, $val) )
if (preg_match("|Plugin Name:\\s*(.+)|", $plg_data, $val))
{
$plugin['name'] = trim( $val[1] );
}
if (preg_match("|Version: (.*)|", $plg_data, $val))
if (preg_match("|Version:\\s*([\\w.-]+)|", $plg_data, $val))
{
$plugin['version'] = trim($val[1]);
}
if ( preg_match("|Plugin URI: (.*)|", $plg_data, $val) )
if (preg_match("|Plugin URI:\\s*(https?:\\/\\/.+)|", $plg_data, $val))
{
$plugin['uri'] = trim($val[1]);
}
@@ -273,15 +273,15 @@ DELETE FROM '. PLUGINS_TABLE .'
{
$plugin['description'] = trim($desc);
}
elseif ( preg_match("|Description: (.*)|", $plg_data, $val) )
elseif (preg_match("|Description:\\s*(.+)|", $plg_data, $val))
{
$plugin['description'] = trim($val[1]);
}
if ( preg_match("|Author: (.*)|", $plg_data, $val) )
if (preg_match("|Author:\\s*(.+)|", $plg_data, $val))
{
$plugin['author'] = trim($val[1]);
}
if ( preg_match("|Author URI: (.*)|", $plg_data, $val) )
if (preg_match("|Author URI:\\s*(https?:\\/\\/.+)|", $plg_data, $val))
{
$plugin['author uri'] = trim($val[1]);
}
@@ -290,6 +290,7 @@ DELETE FROM '. PLUGINS_TABLE .'
list( , $extension) = explode('extension_view.php?eid=', $plugin['uri']);
if (is_numeric($extension)) $plugin['extension'] = $extension;
}
// IMPORTANT SECURITY !
$plugin = array_map('htmlspecialchars', $plugin);
$this->fs_plugins[$file] = $plugin;