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-Key: 102549

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

Printed on: April 23, 2024 at 14:04 o'clock

Member: dog
dog Nov 25, 2008 at 01:37:27 (UTC)
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
)
Member: chrizz-at
chrizz-at Nov 25, 2008 at 08:44:10 (UTC)
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))