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)
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>';
?>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 102549
Url: https://administrator.de/contentid/102549
Ausgedruckt am: 26.11.2024 um 10:11 Uhr
2 Kommentare
Neuester Kommentar
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
)