• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Balken in PHP zeichnen

InV4d3r

New member
Hi..
habe ein Skript geschrieben, was meinen Gesamtspeicher der Festplatte ausliest, auch in % und auch von einem bestimmten Verzeichnis.

Bin nicht so fit in PHP, aber hier ist mal mein Skript:

Code:
<?php

$path = "/var";
$output = shell_exec('du -bsh ' . $path);
$output = explode ("\t", $output);
$speicherverbrauch = $output[0];
$verzeichnis = $output[1];
$speicherverbrauch_gesamt = disk_total_space('/');
$speicherprozent = 0.0;
$speicherverbrauch_gesamt = $speicherverbrauch_gesamt / 1024 / 1024 / 1024;


echo "Gesamtspeicher: ";
echo round($speicherverbrauch_gesamt,2);
echo " GB<br>";
echo "Verbrauchter Speicher: $speicherverbrauch<br>";
echo "Verzeichnis: $path<br>";

$speicherprozent = ($speicherverbrauch * 100) / $speicherverbrauch_gesamt;
$speicherprozent = 100 - $speicherprozent;

echo "Freier Speicher in Prozent: ";
echo round($speicherprozent,2);
echo " %";

?>

Funktioniert soweit auch.

Frage: Wie funktioniert das jetzt, wenn ich einen Balken zeichnen lassen will, so ähnlich wie dieser hier:

testdd5.png


Danke und Gruß

benny
 
Alles klar!

Funzt schon (fast) alles:

Code:
<?PHP
header ('Content-Type: image/gif');

//Deklaration der Variablen

$path = "/var/";
$output = shell_exec('du -bsh ' . $path);
$output = explode ("\t", $output);
$speicherverbrauch = $output[0];
$verzeichnis = $output[1];
$speicherverbrauch_gesamt = disk_total_space('/');
$speicherprozent = 0.0;

//Formatierung und Berechnung des Speicherverbrauchs

$speicherverbrauch_gesamt = $speicherverbrauch_gesamt / 1024 / 1024 / 1024;
$speicherprozent = ($speicherverbrauch * 100) / $speicherverbrauch_gesamt;
$speicherprozent = 100 - $speicherprozent;
$speicherprozent = round($speicherprozent, 2);

//Berechnung des Bildes

$image = imagecreate ( 300, 150 );
$farbe_body=imagecolorallocate ( $image, 243, 243, 243 );
$farbe_b = imagecolorallocate ( $image, 10, 36, 106 );
$farbe_text = imagecolorallocate ( $image, 255, 255, 255 );

imagefilledrectangle ( $image, 30, 60, 270, 90, $farbe_b );
imagestring ( $image, 5,30, 70, " $path : $speicherprozent %", $farbe_text );
imagegif ( $image );
?>

Wenn ihr das mal testen wollt, wäre ich sehr damit einverstanden =)

Problem ist noch, dass ich nicht weiß, wie ich den Balken für 100 % dynamisch mache, und auch dass im oberen Teil des Bildes ich einen String einfügen kann.

LG
 
Wozu ein Bild?
Ich nehme an, du willst das in einer HTML Seite darstellen das geht mit einem DIV.
HTML:
<div 
style="position:relative;width:100px;background-color:#c0c0c0;">
<span style="position:absolute;width:100%;z-index:3;text-align:center">84.04%</span>
<div style="position:relative;width: 84.04%;background-color:#0f0;color:#0f0;z-index:2;">.</div>
</div>

<br>
<div style="position:relative;width:100px;background-color:#c0c0c0;">
<span style="position:absolute;width:100%;z-index:3;text-align:center">50.84%</span>
<div style="position:relative;width:50.84%;background-color:#0f0;color:#0f0;z-index:2;">.</div>
</div>
 
Wozu ein Bild?
Ich nehme an, du willst das in einer HTML Seite darstellen das geht mit einem DIV.
HTML:
<div 
style="position:relative;width:100px;background-color:#c0c0c0;">
<span style="position:absolute;width:100%;z-index:3;text-align:center">84.04%</span>
<div style="position:relative;width: 84.04%;background-color:#0f0;color:#0f0;z-index:2;">.</div>
</div>

<br>
<div style="position:relative;width:100px;background-color:#c0c0c0;">
<span style="position:absolute;width:100%;z-index:3;text-align:center">50.84%</span>
<div style="position:relative;width:50.84%;background-color:#0f0;color:#0f0;z-index:2;">.</div>
</div>

Les mal bitte den Thread noch mal durch..

danke :)
 
Ich hab nur den HTML Code ausprobiert und der funktioniert soweit.

Code:
<?PHP
header ('Content-Type: image/gif');

//Deklaration der Variablen

$path = "/var/";
$output = shell_exec('du -bsh ' . $path);
$output = explode ("\t", $output);
$speicherverbrauch = $output[0];
$verzeichnis = $output[1];
$speicherverbrauch_gesamt = disk_total_space('/');
$speicherprozent = 0.0;

//Formatierung und Berechnung des Speicherverbrauchs

$speicherverbrauch_gesamt = $speicherverbrauch_gesamt / 1024 / 1024 / 1024;
$speicherprozent = ($speicherverbrauch * 100) / $speicherverbrauch_gesamt;
$speicherprozent = 100 - $speicherprozent;
$speicherprozent = round($speicherprozent, 2);

//Berechnung des Bildes

$image = imagecreate ( 300, 150 );
$farbe_body=imagecolorallocate ( $image, 243, 243, 243 );
$farbe_b = imagecolorallocate ( $image, 10, 36, 106 );
$farbe_text = imagecolorallocate ( $image, 255, 255, 255 );

imagefilledrectangle ( $image, 30, 60, 270, 90, $farbe_b );
imagestring ( $image, 5,30, 70, " $path : $speicherprozent %", $farbe_text );
imagegif ( $image );
?>

den da? aber is doch php
 
Nein, den da:
HTML:
<div 
style="position:relative;width:100px;background-color:#c0c0c0;">
<span style="position:absolute;width:100%;z-index:3;text-align:center">84.04%</span>
<div style="position:relative;width: 84.04%;background-color:#0f0;color:#0f0;z-index:2;">.</div>
</div>

<br>
<div style="position:relative;width:100px;background-color:#c0c0c0;">
<span style="position:absolute;width:100%;z-index:3;text-align:center">50.84%</span>
<div style="position:relative;width:50.84%;background-color:#0f0;color:#0f0;z-index:2;">.</div>
</div>
 
Ja und was hält dich davon ab diese Zahlen an der entsprechenden Stelle mit PHP auszugeben? Genau dazu ist doch PHP erfunden worden.
 
Code:
<?php
header ('Content-Type: image/gif');

//Deklaration der Variablen

$path = "C:";
$speicherfrei = disk_free_space($path);
$speichergesamt = disk_total_space($path);
$speicherbelegt = $speichergesamt - $speicherfrei;
$speicherProzent = round($speicherbelegt / $speichergesamt * 100, 2);

//Berechnung des Bildes

$image = imagecreate ( 300, 150 );
$farbe_body = imagecolorallocate ( $image, 243, 243, 243 );
$farbe_b = imagecolorallocate ( $image, 10, 36, 106 );
$farbe_p = imagecolorallocate ( $image, 80, 255, 80 );
$farbe_text = imagecolorallocate ( $image, 255, 255, 255 );

$balkenLaenge = 200;
$balkenHoehe = 30;
$balkenX = 30;
$balkenY = 60;
$balkenSchrift = 5;
$balkenText = "$path $speicherProzent %";
$balkenSchriftHoehe = imagefontheight($balkenSchrift);
$balkenSchriftLaenge = imagefontwidth($balkenSchrift) * strlen($balkenText);

imagefilledrectangle ( $image, $balkenX, $balkenY, $balkenX + $balkenLaenge, $balkenY + $balkenHoehe, $farbe_b );
imagefilledrectangle ( $image, $balkenX, $balkenY, $balkenX + ($balkenLaenge / 100 * $speicherProzent), $balkenY + $balkenHoehe, $farbe_p );
imagestring ( $image, $balkenSchrift , $balkenX + ($balkenLaenge - $balkenSchriftLaenge) / 2, $balkenY + ($balkenHoehe - $balkenSchriftHoehe) / 2, $balkenText, $farbe_text );
imagegif ( $image );
?>
 
Zurück
Oben