/**
 *  Get version bounds from two version strings, that can be on the
 *  format '5', '5.2', '5.x.x' even be 'false'
 */
function GetVersionBounds($minimumVersion, $maximumVersion)
{
    $current = VersionStringToArray(phpversion());
    # PHP ALWAYS HAS FULL VERSION STRING!!
    $minimum = VersionStringToArray($minimumVersion, '0');
    // Any higher version is accepted!
    if ($maximumVersion === false) {
        return array('current' => $current, 'lower' => $minimum, 'upper' => VersionStringToArray('99.99.99'));
    } else {
        if ($maximumVersion !== false) {
            return array('current' => $current, 'lower' => $minimum, 'upper' => VersionStringToArray($maximumVersion, '99'));
        } else {
            // Create upper bounds from the required version, such that
            // any undefined values will be maximum
            return array('current' => $current, 'lower' => $minimum, 'upper' => VersionStringToArray($minversion, '99'));
        }
    }
}
Beispiel #2
0
 // If minimum PHP version is required
 if ($steps[STEP_PHPREQUIRES]['phpversion'] !== false) {
     $page->SubTitle('PHP Version', 'notepad');
     $bounds = GetVersionBounds($steps[STEP_PHPREQUIRES]['phpversion'], $steps[STEP_PHPREQUIRES]['maxversion']);
     $CurLow = CompareVersons($bounds['current'], $bounds['lower']);
     $CurHig = CompareVersons($bounds['current'], $bounds['upper']);
     // Start the version table
     $page->StartTable(4, array('class' => 'dbtests', 'cellspacing' => '0', 'cellpadding' => '0'));
     // Display the requirements
     $page->AddTableData('', array('class' => 'currentico'));
     $page->AddTableData('Required:', array('style' => 'padding-right:15px;'));
     // If range is defined or not
     if ($steps[STEP_PHPREQUIRES]['maxversion'] === false) {
         $str = '  or later';
     } else {
         $str = '  -  ' . implode('.', VersionStringToArray($steps[STEP_PHPREQUIRES]['maxversion']));
     }
     $page->AddTableData(implode('.', $bounds['lower']) . $str, array('style' => 'padding-right:15px;'));
     $page->AddTableData('');
     // If current version is equal or higher than lower bound
     // and is below the upper bound - then accepted!
     if ($CurLow >= 0 && $CurHig < 0) {
         $page->AddTableData('', array('class' => 'okayico'));
         $page->AddTableData('You have:');
         $page->AddTableData(phpversion(), array('style' => 'text-align:center;'));
         $page->AddTableData('Supported!', array('class' => 'okay'));
     } else {
         $phpversion = false;
         if ($CurLow < 0) {
             $str = 'Below required version!';
         } else {
Beispiel #3
0
			if($key == 'phpversion')
			{
				$version = implode('.', VersionStringToArray($value, '0'));
				if($version != $value)
					$show .= ' <span style="color:#8F8F8F; font-size:11px;">(becomes minimum: '.$version.')</span>';

				$page->AddTableData('<tt>'.$show.'</tt>');
			}

			/* -----------------------( PHP VERSION STRING )----------------------- */
			else if($key == 'maxversion')
			{
				if($value === false)
					$value = 'x';

				$version = implode('.', VersionStringToArray($value, '99'));
				if($version != $value)
					$show .= ' <span style="color:#8F8F8F; font-size:11px;">(becomes maximum: '.$version.')</span>';

				$page->AddTableData('<tt>'.$show.'</tt>');
			}

			/* -----------------------( PHP EXTENSIONS )----------------------- */
			else if($key == 'extensions' && is_array($value))
			{
				$show = '';
				foreach($value as $ext=>$title)
				{
					if(IsExtensionInstalled($ext))
						 $show .= '['.GetAsGreen($ext).'] '.$title.'<br />';
					else $show .= '['.GetAsRed($ext).'] '.$title.'<br />';