chrizz-at
Goto Top

Version eines Programmes (bit mäßig) anzeigen

Hallo Leute! Habe hier einen Code der mir ein paar Sachen aus einem String prüft!

Jetzt habe ich die Aufgabe bekommen die Version zu überprüfen (nach Bitsystem)

1 - aktuelle Version
2 - 64 bit
4 - alte version (alt)
8 - neue version (rc)

$filename = 'Client-2.0.1.1820-RC-32_Serial.exe' // -> Version (alt, RC, final, beta) muss BIT MÄSSIG ermittelt werden! - Dannach muss es in eine MYSQL datenbank geschrieben werden!  


// hier mein Script! (welches alles andere macht):

<?
$dir		= 'C:\\xampp\\htdocs\\test\\';  
$filename 	= 'Client-2.0.1.1877-RC.exe';  

// Endung wegschneiden ...
$tempS	= substr($filename, 0, strrpos($filename, '.'));  
$bs 	= strpos($tempS, '-');  
$us 	= strpos($tempS, '_');  

if ($us !== false) {
	$serial		= substr($tempS, $us+1, 9999);
	$tempS		= substr($tempS, 0, $us);		// tempS = Client-2.0.1.1820-RC-64
}
if ($bs === false) {		// kein - im FileName
	$name	= $tempS;
}
else  // kommt auch - vor -> 
	{ 
	$name		= substr($tempS, 0, $bs);
	$tempS		= substr($tempS, $bs+1, 9999);	// Testen sonst mit length .... ist der Rest
	
	// hier ist Filename ohne name, ohne exe ohne serial
	$bs	= strpos($tempS, '-');  // - suchen  
	while ($bs !== false) {
		$part = substr($tempS, 0, $bs);
		$tempS	= substr($tempS, $bs+1, 9999);
		ProcessPart($part);
		$bs	= strpos($tempS, '-');		// nächsten - suchen  
	}
	ProcessPart($tempS);
}

function ProcessPart($part) {
	global $release, $build, $bit;
	
	if (strpos($part, '.') !== false) {  
		$build		= $part; 	// build
	}
	else if (($part == '32') || ($part == '64')) {  
		$bit		= $part;	// bit
	}
	else {
		$release	= $part; //release
	}
}

$fullFileName	= $dir.$filename;

if (file_exists($fullFileName)) {
	echo 'FullFileName : '.$fullFileName.'<br>';  
	echo 'md5_file : '.md5_file($fullFileName).'<br>';  
	echo 'filesize : '.filesize($fullFileName).'<br>';  
}
else 
	echo 'File '.$fullFileName.' existiert nicht <br>';  
	

if ($bit == '') $bit = '32';  


echo 'name: <a href="up.php?name='.$name.'">'.$name.'<br></a>';  
echo 'release: <a href="up.php?release='.$release.'">'.$release.'<br></a>';  
echo 'build: <a href="up.php?build='.$build.'">'.$build.'<br></a>';  
echo 'bit: <a href="up.php?build='.$bit.'">'.$bit.'<br></a>';  
echo 'serial: <a href="up.php?serial='.$serial.'">'.$serial.'<br></a>';  
$md5 = md5_file($fullFileName);
$filesize = filesize($fullFileName);

echo 'File: <a href="up.php?name='.$name.'&release='.$release.'&build='.$build.'&bit='.$bit.'&serial='.$serial.'&md5='.$md5.'&filesize='.$filesize.'">'.$filename.'<br></a>';  

?>

Content-ID: 102549

Url: https://administrator.de/contentid/102549

Ausgedruckt am: 26.11.2024 um 10:11 Uhr

dog
dog 25.11.2008 um 02:37:27 Uhr
Goto Top
Und deine Frage war jetzt?

<?php
	$filename = 'Client-2.0.1.1820-RC-32_Serial.exe';  
	preg_match('/^(.*?)-(\d+)\.(\d+)\.(\d+)\.(\d+)-(RC|final|beta|alt)-(32|64)_(.*?)\./i',$filename, $results);  
	
	print_r($results);

?>

Array
(
     => Client-2.0.1.1820-RC-32_Serial.exe
    [1] => Client
    [2] => 2
    [3] => 0
    [4] => 1
    [5] => 1820
    [6] => RC
    [7] => 32
    [8] => Serial
)
chrizz-at
chrizz-at 25.11.2008 um 09:44:10 Uhr
Goto Top
ok ich machs jetzt anders!

ich habe hier einen Code, wo ich variablen mit get übergeben habe..

wie kann ich eine MYSQL Datenbank nach $name, $build, $release usw. durchsuchen, um herauszufinden ob es diese Datei in der Liste schon gibt?


$name = $_GET['name'];  
$build = $_GET['build'];  
$release = $_GET['release'];  
$bit = $_GET['bit'];  
$serial = $_GET['serial'];  
$md5 = $_GET['md5'];  
$filesize = $_GET['filesize'];  


// Verbindung zur DB
$link = mysql_connect("localhost", "root", "") or die("Keine Verbindung möglich: " . mysql_error());  
mysql_select_db("ulysses") or die("Auswahl der Datenbank fehlgeschlagen");  


// Dateiliste auswählen
$filelist = mysql_query('SELECT * FROM files')  
while ($files = mysql_fetch_array($filelist))