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>';
?>
Please also mark the comments that contributed to the solution of the article
Content-Key: 102549
Url: https://administrator.de/contentid/102549
Printed on: April 23, 2024 at 14:04 o'clock
2 Comments
Latest comment
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
)