Hallo alle zusammen,
ich brauche mal eure Hilfe. Könnt Ihr bitte mal das Script für mich testen?
Ich habe das gute Stück geschrieben um die aktuell benutzte Windows-Version
zu ermitteln. Bei mir klappt es.
<?
ob_start();
eval("phpinfo();");
$info = ob_get_contents();
ob_end_clean();
$arr_info = explode("
", $info);
foreach($arr_info as $line)
{
if(strpos($line, "System "))
{
$arr_line = explode("build", $line);
$lenght = strlen($arr_line[0]);
$Win_Version = substr($arr_line[0], $lenght-4,3);
$Win_Version = trim($Win_Version);
}
}
Switch($Win_Version)
{
case "5.1":
echo "Windows XP";
break;
case "5.2":
echo "Windows Server 2003";
break;
case "6.0":
echo "Windows Vista / Server 2008";
break;
case "6.1":
echo "Windows 7 / Server 2008 R2";
break;
case "6.2":
echo "Windows 8";
}
?>
Einfach in ein leeres Script kopieren und ausführen. Es sollte die benutzte Windows-Version ausgegeben werden.
Besten Dank für eure Hilfe.
Aehh…bei mir nicht. Läft in 9ms Sekunden durch.
print_r ($info);
liefert mir in der Systems Zeile:
System Windows NT 6.1 build 7601 ((null) Service Pack 1) i586
in
echo $Win_Version;
steht:
6.1/tr/tr
Keine Ahnung, wo die /tr’s herkommen.
Hallo wupperi,
das passt eigentlich. Ich habe auch Win7. Bei mir sieht das genau so aus.
Danach mach ich noch einen Explode bei „build“ und hol mir die letzten Zeichen.
hmm. Komisch. (aber nicht komisch wie lustig!!)
Dann muss ich noch mal schaun. :o
Besten Dank
Edit:
OK, da muss ich den Spass noch bereinigen.
Habe meinen Beitrag nochmal upgedatet, hat sich mit Deinem überschnitten, vieleicht hilft Dir die Info.
Hallo wupperi,
ich habe das Script mal geändert. Kannst Du das noch mal probieren?
Hallo alle zusammen,
ich benötige das Script um die „SessionID“ für „IPS_ExecuteEx“ zu ermitteln.
Ich habe das ganze in eine Funktion gepackt. Wenn das mal einer gebrauchen kann, hier die Funktion.
function Get_SessionID()
{
// Ausgabepufferung aktivieren
ob_start();
// phpinfo abfragen
eval("phpinfo();");
// den Inhalt in eine Variable schreiben
$info = ob_get_contents();
// Löschen und deaktiviert des Ausgabe-Puffers
ob_end_clean();
// Zeilenweise zerlegen
$arr_info = explode("
", $info);
// Zeilenweise den Inhalt nach der System-Zeile durchsuchen
foreach($arr_info as $line)
{
// ausgeben der SessionID
if((strpos($line, "System =>")) === 0)
{
// Windows XP
if(strpos($line, "5.1")) return 0;
// Windows Server 2003
if(strpos($line, "5.2")) return 1;
// Windows Vista / Server 2008
if(strpos($line, "6.0")) return 1;
// Windows 7 / Server 2008 R2
if(strpos($line, "6.1")) return 1;
// Windows 8
if(strpos($line, "6.2")) return 1;
}
}
}
Der Rückgabewert ist die SessionID. Benutzt wird die Funktion so:
$SessionID = Get_SessionID();
Nope, geht immer noch nicht. Der trim Befehl hat die /tr (Wie ich glaube die HTML tags für eine Zeile in einer Tabelle) nicht entfernt.
Selbst ein
$Win_Version = substr($Win_Version, 0,3);
entfernt die /tr’s nicht.
Seltsam, irgendwie scheint man hier mit Stringverarbeitung nicht weiter zu kommen…
Ja, ich weiss. Ich habe es jetzt anders gelöst (siehe Funktion).
Trotzdem besten Dank!!
Hab das Script mal auf schloff gebracht. Die phpinfo() hat sich geändert.
Funktioniert natürlich nur noch mit der Version 2.5!!